javascript - 具有功能的 Angular ng-show

标签 javascript angularjs

我正在设计一个具 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/

相关文章:

javascript - 为什么这个回调没有访问外部作用域的正确值?

javascript - 为什么 jQuery 的 promise 有一个 done(),而 Mozilla 记录的 Javascript 的 promise 却没有?如果我想在 JS 中有一个 done() 怎么办?

javascript - 尝试从 JSON 响应文本中选取数据

java 到 MYSQL 日期时间格式

javascript - Access-Control-Allow-Headers 不允许请求 header 字段 Access-Control-Allow-Headers

javascript - 为什么我的 jQuery 没有返回 <select> 的值

javascript - jQuery ajaxForm "h is undefined"问题

javascript - 如何使用具有工作 ng-click 功能的 angularjs 添加 html 按钮

javascript - angularjs - 如何使用 html 选择

javascript - 数据和指令(结构)