[AngularJS]3. ng-hide and ng-show
1. Use a directive to ensure that we can only see the "Add to Cart" button if the canPurchase
property is true.
<button ng-show="store.product.canPurchase">Add to Cart</button>
2. Our first gem
is so popular that we've run out of stock already! Well, Flatlander gems are pretty rare, so it shouldn't be a big surprise. Luckily there is a soldOut
property to our gem
. When a gem issoldOut
, hide the .product
element.
<div class="product row" ng-hide="store.product.soldOut">
<!DOCTYPE html> <html ng-app="gemStore"> <head> <link rel="stylesheet" type="text/css" href="bootstrap.min.css" /> <script type="text/javascript" src="angular.min.js"></script> <script type="text/javascript" src="app.js"></script> </head> <body class="container" ng-controller="StoreController as store"> <div class="product row" ng-hide="store.product.soldOut"> <h3> {{store.product.name}} <em class="pull-right">${{store.product.price}}</em> </h3> <button ng-show="store.product.canPurchase">Add to Cart</button> </div> </body> </html>(function() {var app = angular.module('gemStore', []);
app.controller('StoreController', function(){ this.product = gem; }); var gem =
{ name: 'Azurite', price: 110.50, canPurchase: false, soldOut: true };
})();