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();
});