具有功能的角度ng-show

时间:2016-08-18 01:17:49

标签: javascript angularjs

我正在设计一个带角度的菜单订购系统,允许人们拥有相同订单的多个数量。使用ng-show时遇到问题。从我的理解ng-show跟踪提供的表达式,但在我的情况下它似乎只评估它一次。以下是我的代码。

查看

<a ng-click="menu.addMenuItem(category.items[$index])"> <span class="plus glyphicon glyphicon-plus"></span></a>
<span ng-show="{{menu.getItemQuantity(category.items[$index])}}">
    {{menu.getItemQuantity(category.items[$index])}}
    <a ng-click="menu.subMenuItem(category.items[$index])"> <span class="minus glyphicon glyphicon-minus"></span></a>
</span>

控制器

var vm=this;
vm.getItemQuantity = function(item){
    return shoppingCart.getItemQuantity(item);//refers to service function
}

服务

var getItemQuantity = function(item){
    var inOrder = isItemInOrder(item); //custom function

    if(inOrder.check){
        return cart.order[inOrder.index].quantity;
    }else{
        return 0;
    }
}

此代码的目标是在客户选择要包含的菜单项后,切换视图中的span元素以显示。目前,当一个项目添加到视图时,整个应用程序都会注册它。事件中ng-show中的函数也会返回正确的答案,但由于某种原因,它不会自动保持不变。它似乎只是在评估我的表达一次。是什么给了什么?

1 个答案:

答案 0 :(得分:2)

我已经解决了我的问题。事实证明,ng-show属性接受一个表达式,因此我应该改变

ng-show="{{expression}}"

ng-show="expression"