angular js ng-show 不工作

angular js ng-show is not working

Html代码:

<div ng-controller="StoreController">
                          <div ng-repeat="store in gems">

                                {{store.name}}<br>
                                {{store.price}}
                                {{store.canPurchase}}
                                {{store.soldOut}}
                                <button ng-show="store.canPurchase">Add to Cart</button>

                           </div>
                    </div>

JS代码:

    myApp.controller('StoreController', ['$scope', function($scope){
    $scope.gems=[
            {name: 'Azurite', price: '110.50', canPurchase: 'false', soldOut: 'true'},
            {name: 'Azurite +', price: '120.50', canPurchase: 'true', soldOut: 'false'}
    ];


}]);

我尝试使用 ng-show="true" 和 ng-show="false",我的代码按预期工作。

我正在 html 页面上打印 store.canPurchase 值,并且值显示正确。

但是当我在 ng-show 中给出 store.canPurchase 时,代码不起作用。

去掉引号就可以了。 canPurchase 的 false 和 true 值现在是字符串 ("") 而不是布尔值。

$scope.gems=[
        {name: 'Azurite', price: '110.50', canPurchase: false, soldOut: true},
        {name: 'Azurite +', price: '120.50', canPurchase: true, soldOut: false}
];

Plunkr

顺便说一句,soldOut 也是如此 :)