我正在设计一个具 Angular 菜单订购系统,允许人们有多个数量的相同订单。我在使用 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>
Controller
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;
}
}
此代码的目的是让 View 中的 span 元素切换为在客户选择要包含的菜单项后显示。目前,当一个项目被添加到 View 中时,整个应用程序都会注册它。 Event ng-show 中的函数也返回正确的答案,但由于某种原因它不会自动保持切换。它似乎只评估了一次我的表情。给了什么?
最佳答案
我的问题已经解决了。事实证明 ng-show 属性接受一个表达式,因此我应该更改
ng-show="{{expression}}"
到
ng-show="expression"
关于javascript - 具有功能的 Angular ng-show,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39008529/