从ng-repeat获得承诺

时间:2014-11-29 06:40:53

标签: javascript angularjs

在视图中重复开始渲染。将数组分配给范围变量时,

html
<div ng-repeat="l in languages">{{l.name}}</div>

js
$rootScope.languages = data.languages
// I want a promise of ng-repeat completed here. 
setTimeout (->
  $rootScope.language = data.languages[0];
),200

现在我正在使用setTimeout。但它不正确的方式

1 个答案:

答案 0 :(得分:0)

可能没有开箱即用的承诺。但是,通过ng-repeat $last可以实现目标。 Doc:https://docs.angularjs.org/api/ng/directive/ngRepeat

<div ng-repeat="l in languages" ng-init="testLast($last)">{{l.name}}</div>

$rootScope.testLast = function($last) {
    if($last) {
        // whatever you intended for the promise
    }
}

如果需要更好的隔离,也可以为此创建指令。