Shopping cart simulator
Don't have time for a full review but hopefully this will give you some food for thought.

Why add an extra variable show? Angular is more than capable of binding to an expression:

ng-show='message != ""'


Then you have one less thing to juggle in your controller:

$scope.addMsg = function (qty, item) {
    $scope.message = "Added " + qty + " " + item + " to the cart";
    // console.log($scope.message); // if you want to debug
    $timeout(function() {
      $scope.message = ""; 
    },3000);
}


Some notes about code clarity: 


Don't forget your semicolons
Add some spacing between operators e.g. a + b + c + d is easier to read than a+b+c+d 
addCartMessage is probably more descriptive than addMsg


As for your question about directives:

msgpallete should be killed with fire
itemContainer seems like a good candidate but execution isn't great (will come back to this if I get time)

By removing the msgpallete directive you can change your view to:

&lt;div id="msger"&gt;
    &lt;h4 ng-show='message != ""'&gt;{{message}}&lt;/h4&gt;
&lt;/div&gt;


(Your controller will be unchanged).