Angularjs使用ng repeat缺少ng init的作用域值
Angularjs missing scope values for ng-init using ng-repeat
嗨,我的页面中有以下html
<div ng-repeat="a in loc" ng-init="getValues(a)">
<div>
<select ng-options="c.id as c.site for c in names" ng-model=a.id></select>
</div>
<div>
<select ng-options="a.id as a.name for a in val"></select>
</div>
</div>
在我的控制器中,我有
$scope.getValues = function(a) {
$scope.val = pRepository.getVals.query({ id: a.ie }, function (data) {
$scope.val = data;
});
我遇到的问题是,当ng repeat中的"loc"列表很小,有一两条记录时,它可以正常工作。当它有20条左右的记录时,它会错过一堆$scope.val值,并列出其中一些值。我试着用$promise,但没有成功。请让我知道我如何才能放慢ng重复或其他什么,这样它就加载了所有的vals。感谢
每次调用getValues(...)
时,都会更新相同的$scope.val
属性(它是ngRepeat
创建的作用域的父级的val
属性。由于您需要一个"本地"val
属性,因此应该相应地修改代码:
<div ng-repeat="a in loc" ng-init="values = getValues(a)">
...
<div>
<select ng-model="someModel" ng-options="a.id as a.name for a in values">
</select>
</div>
</div>
$scope.getValues = function(a) {
var data = [];
pRepository.getVals.query({id: a.ie}, function (data) {
data = data;
});
return data;
}
另请参阅简短演示。
相关文章:
- 从ng模板访问作用域
- ng重复中的ng模型-初始化唯一作用域属性
- 如何为通过ng-view指令或ng-controller指令创建的每个新作用域设置侦听器
- ng根据作用域值隐藏
- 阻止“ng include”创建孤立的作用域.AngularJS
- 角度指示ng重复作用域和服务
- 以新模式访问作用域形式ng repeat
- AngularJS select with ng选项不更新父作用域中的引用对象属性
- AngularJS:将ng重复作用域暴露给ng transclude
- 使用ng repeat中的键值来扩展作用域表达式
- ng隔离未附加到templateUrl的作用域
- 如果在具有单独作用域的其他指令中,请使用ng
- 具有ng模型依赖性的孤立作用域陷阱
- 通过json动态绑定作用域到ng模型
- 如果作用域值等于单击的元素的属性值,则Ng类
- 使用ng-click在作用域内定位元素
- 如何在使用ng repeat时停止传播(或者如何更好地隔离作用域)
- AngularJS ng-click不调用作用域上的函数
- 角度指令作用域绑定在 ng-repeat中不起作用
- 如何在具有隔离作用域的指令中使用 ng-repeat