按钮应显示何时值设置为true但不是

时间:2014-08-20 02:00:14

标签: javascript html angularjs

当我在对象canPurchase下将值设置为true时,应显示添加到购物车按钮。出于某种原因,我只能在我面前用感叹号设置ng-show时显示它。 我仍然是棱角分明的新人,所以我不太了解术语。

这是我的jsfiddle链接:http://jsfiddle.net/jL0c6sLc/

    <body class="container"  ng-app="gemStore">
       <div class="product row">
         <h1>Store Name</h1>
       </div>
       <div ng-controller="StoreController as store">
        <div class="product row" ng-repeat="product in store.products">
          <h3>{{product.name}}<em class="pull-right">{{product.price | currency}}</em></h3>
          <button ng-show="store.product.canPurchase">Add to Cart</button>
        </div>
       </div>
    <script data-require="angular.js@1.2.10" data-semver="1.2.10" src="http://code.angularjs.org/1.2.10/angular.js"></script>
    <script src="js/app.js"></script>

这是我的app.js脚本

(function() {
 var app = angular.module('gemStore', []);
 var gems = [
   { name: 'Azurite', price: 2.95, canPurchase: true},
   { name: 'Bloodstone', price: 5.95, canPurchase: true},
   { name: 'Zircon', price: 3.95, canPurchase: true},
 ];
 app.controller('StoreController', function(){
  this.products = gems; 
 });
})();

基本上我只想要添加到购物车&#39;按钮显示对象何时可以购买&#39;设置为true。 现在,我可以通过这样做来获得按钮的唯一方法:

     <button ng-show="!store.product.canPurchase">Add to Cart</button>

就好像canPurchase下的值没有做任何事情都被设置为true或false。 请帮助我理解这个以及为什么它不能正常工作。

1 个答案:

答案 0 :(得分:2)

您需要使用

 <button ng-show="product.canPurchase">Add to Cart</button>

目前store.product.canPurchase内没有ng-repeat。我很确定它就是这样。如果您没有引用单个产品项,则表达式无效。

已确认更改此内容适用于此jsfiddle here