我正在使用angularJS + laravel应用程序,我试图从这样的动态函数更新某个范围:
$scope.closeoverlay = function (){
argumentsArray = [].slice.apply(arguments);
for (var i = 0; i < argumentsArray.length; i++) {
console.log($scope[argumentsArray[i]]);
$scope[argumentsArray[i]] = ''
console.log($scope[argumentsArray[i]]);
}
}
这是我的HTML代码:
<p>{{var1 ? var2+'-'+var3:'Nothing set'}}</p>
<div>
<input type="radio" id="var3" name="var3" ng-model="var3" value="1" >
<input class="form-control" type="text" name="var1" ng-model="var1" format="number" >
<input class="form-control" type="text" name="var1" ng-model="var2" format="number" >
<button id="cancel" class="btn btn-default btn-red" ng-click="closeoverlay('var1','var2','var3')">
Cancel
</button>
</div>
我必须使用动态范围,因为有大约4 - 5取消不同的vars。
主要的问题是,如果我控制vars它工作得很好,但在前面他们只是不更新,我通过申请进行一些测试,但总是得到$apply already in progress
,我想我是做错了。 (我也尝试使用angular.foreach
,但它也不起作用)
答案 0 :(得分:0)
只是声明控制器中的变量
var app = angular.module('app', []);
app.controller('myController', function ($scope) {
$scope.var1=1;
$scope.var2=2;
$scope.var3=3;
$scope.closeoverlay = function (){
argumentsArray = [].slice.apply(arguments);
for (var i = 0; i < argumentsArray.length; i++) {
console.log($scope[argumentsArray[i]]);
$scope[argumentsArray[i]] = ''
console.log($scope[argumentsArray[i]]);
}
}
});
我的例子的结果是:2-3取消