带templateUrl和ng-repeat的自定义指令

黑香蕉

我研究这个问题已经有好几个小时了,最后我在plunker上转载了它

这是我的问题:

当使用外部资源作为模板的自定义指令与ng-repeat结合使用时,在更改模型时视图无法正确呈现。

在我的示例中,单击链接将替换模型,但旧数据尚未清除。

如果我使用template: 'stringTemplate'代替templateUrl: 'urlToTemplate',它就可以正常工作。还是不知道这是个bug还是什么...

部分代码:

angular.module('test', [])
    .run(function($rootScope) {
        $rootScope.topics = [{
            content: 'Click here to change reply',
            replys: [{
                content: 'Reply test...',
            }]
        }];
    })
    .directive('topic', function() {
        return {
            replace: true,
            restrict: 'E',
            templateUrl: 'topic.htm',
            link: function(scope) {
                scope.reply = function(input) {
                    scope.topic.replys = [{ content: '"Reply test..." should be replaced, but it\'s not!' }];
                }
            }
        };
    })
    .directive('reply', function() {
        return {
            replace: true,
            restrict: 'E',
            // template: '<div><div ng-bind="reply.content"></div></div>' //this works fine
            templateUrl: 'reply.htm' // same content
        };
    });
B科特

我做了一些研究,看来您并不孤单:

https://github.com/angular/angular.js/issues/2151

ishw用户提到了一个快速解决方案:

“对于那些可能尚未意识到的人:这是因为您的ng-repeat位于指令模板的根元素上。将ng-repeat包裹在任何元素中就可以了。”

我尝试了与您的plunkr,它似乎正在工作

  <div> 
      <div class="topic" ng-bind="topic.content" ng-click="reply()"></div>
      <div ng-repeat="reply in topic.replys"><reply></reply></div>
  </div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

带templateUrl和ng-repeat的自定义指令

来自分类Dev

ANgularjs:ng-repeat和嵌套的自定义指令

来自分类Dev

ANgularjs:ng-repeat和嵌套的自定义指令

来自分类Dev

使用ng-repeat嵌套自定义指令

来自分类Dev

有角度的。内含ng-repeat的自定义指令

来自分类Dev

AngularJS自定义指令ng-repeat,无法调用null的方法“ insertBefore”

来自分类Dev

自定义指令中的ng-repeat:语法错误:令牌'$ index'是意外的

来自分类Dev

与ng-repeat相同的HTML元素上的AngularJS自定义指令

来自分类Dev

在替换ng-repeat之前,将调用自定义指令的链接功能

来自分类Dev

带有ng-repeat作为自包含内容的自定义指令

来自分类Dev

使用自定义指令进行ng-repeat数据绑定

来自分类Dev

AngularJS-从自定义指令将参数从ng-repeat传递到控制器

来自分类Dev

使用自定义指令进行ng-repeat数据绑定

来自分类Dev

使用自定义指令使用ng-repeat显示2个不同的表

来自分类Dev

自定义指令中的ng-repeat:语法错误:令牌'$ index'是意外的

来自分类Dev

AngularJS:ng-repeat在具有隔离范围的自定义指令上

来自分类Dev

如何使用ng-repeat生成自定义html标签或指令?

来自分类Dev

ng-repeat中具有动态字段名称的自定义指令

来自分类Dev

动态将自定义指令绑定到ng-repeat

来自分类Dev

ng-repeat自定义指令上的对象数组不起作用

来自分类Dev

围绕ng-repeat内容包装时,Angular自定义Collapsable指令失败

来自分类Dev

在自定义指令中使用ng Repeat来填充选择下拉列表

来自分类Dev

为什么ng-repeat内的自定义指令在循环完成后运行?

来自分类Dev

在替换ng-repeat之前,将调用自定义指令的链接功能

来自分类Dev

在 AngularJS 中的 ng-repeat 指令中使用自定义过滤器订购数据

来自分类Dev

带自定义指令的表行

来自分类Dev

带自定义指令的表行

来自分类Dev

如何为ng-table创建自定义指令(对表和ng-repeat使用不同的数据)

来自分类Dev

如何为ng-table创建自定义指令(对表和ng-repeat使用不同的数据)

Related 相关文章

  1. 1

    带templateUrl和ng-repeat的自定义指令

  2. 2

    ANgularjs:ng-repeat和嵌套的自定义指令

  3. 3

    ANgularjs:ng-repeat和嵌套的自定义指令

  4. 4

    使用ng-repeat嵌套自定义指令

  5. 5

    有角度的。内含ng-repeat的自定义指令

  6. 6

    AngularJS自定义指令ng-repeat,无法调用null的方法“ insertBefore”

  7. 7

    自定义指令中的ng-repeat:语法错误:令牌'$ index'是意外的

  8. 8

    与ng-repeat相同的HTML元素上的AngularJS自定义指令

  9. 9

    在替换ng-repeat之前,将调用自定义指令的链接功能

  10. 10

    带有ng-repeat作为自包含内容的自定义指令

  11. 11

    使用自定义指令进行ng-repeat数据绑定

  12. 12

    AngularJS-从自定义指令将参数从ng-repeat传递到控制器

  13. 13

    使用自定义指令进行ng-repeat数据绑定

  14. 14

    使用自定义指令使用ng-repeat显示2个不同的表

  15. 15

    自定义指令中的ng-repeat:语法错误:令牌'$ index'是意外的

  16. 16

    AngularJS:ng-repeat在具有隔离范围的自定义指令上

  17. 17

    如何使用ng-repeat生成自定义html标签或指令?

  18. 18

    ng-repeat中具有动态字段名称的自定义指令

  19. 19

    动态将自定义指令绑定到ng-repeat

  20. 20

    ng-repeat自定义指令上的对象数组不起作用

  21. 21

    围绕ng-repeat内容包装时,Angular自定义Collapsable指令失败

  22. 22

    在自定义指令中使用ng Repeat来填充选择下拉列表

  23. 23

    为什么ng-repeat内的自定义指令在循环完成后运行?

  24. 24

    在替换ng-repeat之前,将调用自定义指令的链接功能

  25. 25

    在 AngularJS 中的 ng-repeat 指令中使用自定义过滤器订购数据

  26. 26

    带自定义指令的表行

  27. 27

    带自定义指令的表行

  28. 28

    如何为ng-table创建自定义指令(对表和ng-repeat使用不同的数据)

  29. 29

    如何为ng-table创建自定义指令(对表和ng-repeat使用不同的数据)

热门标签

归档