这是我的代码,我想重置 items.total 模型。 它无法正常工作
<div ng-init="items.total">
<ul ng-repeat="x in Arr">
<li ng-init = "items.total.carat = items.total.carat + x.Carat">{{x.Carat}}</li>
</ul>
</div>
<label>{{items.total.carat}}</label>
<input type="button" ng-click="GetNewData()" value="FETCH">
----------------------------------------------
script :
$scope.GetNewData = function(){
$scope.items = {};
-- code --
};
答案 0 :(得分:0)
您可以在ng-click
中添加多个来电,如下所示
<input type="button" ng-click="GetNewData(); items.total = null;" value="FETCH">
除此之外,你可以在功能中传递items
并在那里清除
<input type="button" ng-click="GetNewData(items); items.total = null;" value="FETCH">
除此之外,您可以只调用方法并在完成所有操作后在控制器中清除它
像
$scope.GetNewData = function(){
/* do necessary operation */
$scope.items = {}; //empty it out
};
答案 1 :(得分:0)
将ng-init
用于列表中的总项目是滥用该指令:
[
ng-init
]指令可能会被滥用,以在模板中添加不必要的逻辑量。ngInit
只有少数适当用途,例如对ngRepeat
的特殊属性进行别名,如下面的演示所示;并通过服务器端脚本注入数据。除了这几种情况,你应该使用控制器而不是ngInit
来初始化作用域上的值。
而是使用JavaScript函数来计算值:
$scope.computeTotal = function() {
$scope.items.total.caret = 0;
for (let i=0; i<$scope.Arr.length; i++) {
$scope.items.total.caret += $scope.Arr[i];
};
};
AngularJS将关注点分为模型,视图和控制器。模板(或视图)应仅呈现模型。 Controller应根据需要创建和更新模型。这个separation of concerns简化了应用程序的开发和维护。