javascript - AngularJS 中的 View 未更新

标签 javascript angularjs

在我的应用程序中,我正在计算总账单并显示在我的 View 上。第一次它工作正常。但是当我增加 $scope.bill_total 时,它并没有更新 View 。但在控制台中它正在发生变化。我已经尝试过 $scope.$apply(). 但它抛出错误。在一般情况下 View 未更新的原因是什么有人能解释一下吗?

HTML

 <div id="total" class="col col-30 cart-item text-right text-black">
            Bill Total<br/> ${{ bill_total }}
        </div>
<button class="button button-small button-light"  ng-click="increment()"> +</button>

JavaScript:

$scope.calculate = function () {
    $scope.bill_total = parseFloat($scope.gross_bill) + parseFloat($scope.taxes) + parseFloat($scope.tips);
}

$scope.calculate();

$scope.increment = function () {
    $scope.gross_bill++;
    $scope.calculate();
    console.log($scope.bill_total )
}       

最佳答案

需要查看更多代码,但是当您期望 bill_total 发生更改时,为什么还要更新gross_bill?

如果您没有在模板中使用gross_bill,则不会监视它,因此更改其值不会重绘 View 。

因此,修改模板中绑定(bind)的内容。如果出于某种原因我错了,您需要执行scope.apply,也许就是这种情况,请尝试将代码包装在 $timeout 中,这将触发摘要,这是“推荐”解决方案,优于直接调用 apply。

notes on apply vs timeout

关于javascript - AngularJS 中的 View 未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27700620/

相关文章:

javascript - 无需双 com 将第一个数组的元素复制到第二个数组

javascript - 咕噜声 : Custom Task - No "taskname" targets found

javascript - 每次加载适当的页面时,如何使脚本仅重定向一次?

javascript - 如何获得具有特定属性的嵌套对象的计数?

javascript - 根据 Firebase 中的子项过滤产品

javascript - 使用 javascript 将项目向下移动到页面

javascript - Angular 服务/工厂配置数据

javascript - Angular 1.x 过滤器 - 修改过滤元素会影响原始数组

javascript - 有什么方法可以增加 dygraph 中图形和范围选择器之间的差距吗?

javascript - 搜索关键字数组以查看是否有任何字符与用户输入匹配