【问题标题】:AngularJS : isolated scope + two-way binding + ng-repeat not workingAngularJS:隔离范围+双向绑定+ ng-repeat不起作用
【发布时间】:2015-02-12 22:43:12
【问题描述】:

ng-repeat 不输出任何内容。在链接函数中,我可以看到 $scope.clients 是一个数组。如果我删除隔离范围并使用父范围,则 ng-repeat 有效。

带有指令“clients”的html。

<div container 
     ng-cloak 
     ng-app="summaryReportApp" 
     ng-controller="summaryReportController as summaryReport">

<fieldset clients="summaryReport.clients">
<legend>Clients</legend>
<div align="left">
    <div ng-repeat="client in clients track by $index">
        {{client}}
    </div>
</div>
</fieldset>

</div>

指令

var clients = function(){
    var definition = {
        restrict:       "A",
        scope:          {
                            clients:"=clients"
                        },
        link:           function($scope,$element,attributes){
                        }
    }

    return definition;
}

【问题讨论】:

  • 我们需要更多的代码。你的 html 中的“ng-app”设置在哪里?
  • 添加容器应用元素。

标签: angularjs angularjs-directive angularjs-ng-repeat


【解决方案1】:

这是一个我似乎经常回答的常见问题。指令中可以嵌套其他 HTML 元素,就像 &lt;input&gt; 可以嵌套在 &lt;div&gt; 中一样。但是,嵌套在指令中的元素 不是 指令的一部分,并且不在指令范围内,它们的范围仅限于它们所在的 HTML。唯一可以访问独立范围的项目是指令定义中的compilelinkcontrollertemplate 项。如果您将内部 html 从字段集中移动到模板中,它将按预期运行。

您也可以参考http://angular-tips.com/blog/2014/03/transclusion-and-scopes/ 了解更多示例和测试方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-26
    • 2013-03-15
    • 1970-01-01
    • 1970-01-01
    • 2015-03-17
    • 1970-01-01
    • 1970-01-01
    • 2014-04-28
    相关资源
    最近更新 更多