ng-repeat 不呈现(除非任何范围变量发生变化)
ng-repeat doesn't render (unless any scope variable changes)
我 运行 遇到了一个非常令人沮丧的问题,我无法弄清楚,而且我的知识不足以自行调试。
基本上,我有一个非常简单的指令,它使用 ng-repeat 打印“1,2,3”:
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-路由器状态。如果我从另一个状态转换到包含指令的状态,它会起作用,但如果我只是将页面加载到该状态,它就不会起作用。
奇怪的是。如果我只修改任何范围变量(无论哪个),它将神奇地开始工作。这是我创建的 fiddle 演示问题的
http://jsfiddle.net/789Ks/247/
这是 ui 路由器错误吗?我是不是什么都不懂?
在附加模板后尝试运行scope.$apply
:
angular.element(document).ready(function() {
element.html('').append($compile(template)(scope));
scope.$apply();
});
我 运行 遇到了一个非常令人沮丧的问题,我无法弄清楚,而且我的知识不足以自行调试。
基本上,我有一个非常简单的指令,它使用 ng-repeat 打印“1,2,3”:
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-路由器状态。如果我从另一个状态转换到包含指令的状态,它会起作用,但如果我只是将页面加载到该状态,它就不会起作用。
奇怪的是。如果我只修改任何范围变量(无论哪个),它将神奇地开始工作。这是我创建的 fiddle 演示问题的
http://jsfiddle.net/789Ks/247/
这是 ui 路由器错误吗?我是不是什么都不懂?
在附加模板后尝试运行scope.$apply
:
angular.element(document).ready(function() {
element.html('').append($compile(template)(scope));
scope.$apply();
});