1
我遇到了一个非常令人沮丧的问题,我无法弄清楚,而且我自己也不知道足以进行调试。ng-repeat不会呈现(除非任何范围变量发生变化)
基本上,我有一个非常简单的指令,打印出“1,2,3”采用NG-重复:
myApp.directive('foo', ['$compile', function($compile) {
return {
restrict: 'A',
link: function (scope, element, attrs) {
var template = '<ul><li ng-repeat="node in [1,2,3]">{{node}}</li></ul>';
//Render template
angular.element(document).ready(function() {
element.html('').append($compile(template)(scope));
});
}
}
}]);
该指令几乎所有的情况在工作,刷新页面到UI时除外路线状态。如果我转换到包含来自另一个状态的指令的状态,但它不起作用,而不是简单地将页面加载到该状态。
这是奇怪的事情。它会奇迹般地开始工作,如果我只是修改任何范围变量(无所谓的哪一个)。这是我创建的小提琴演示问题。
http://jsfiddle.net/789Ks/247/
这是UI路由器的错误?我只是不理解什么?
这工作......但是为什么呢?有时我讨厌角的范围内部 – RPGillespie
,因为你暂时离开了角度世界。您需要'$ apply'将更改传播到Angular – Ladmerc
@Ladmerc,这并不能解释为什么它在状态转换时起作用,但不能在页面载入时起作用 – RPGillespie