由于某些未知原因,无法在AngularJS partial中绑定html?
问题描述:
我有一个ng-repeat,它使用一个部分html文件来循环显示项目到一个页面,由于某些原因,部分内的变量不显示,但显示的变量{{rule.name}}超出局部显示很好?由于某些未知原因,无法在AngularJS partial中绑定html?
规则是一个数组,例如 rules [0] .name ='My first rule'; rules [0] .desc ='我的第一个desc'; rules [1] .name ='我的第二条规则'; rules [1] .desc ='我的第二个desc';
<div ng-controller="RulesController" ng-if="hasManageRules" class="roles canvas-column">
<div ng-repeat="(ruleIndex, rule) in rules">
{{rule.name}} // this shows the variable fine
<div ng-include src="'templates/partial/rule.html'"></div>
</div>
//我的部分/ rule.html文件:
<div ng-controller="RuleController" class="card-body no-hover form-group" ng-click="unfoldrule(ruleIndex)" ng-class="{'unfolded': rule.unfolded}">
<ng-form name="ruleForm">
<div class="card-header">
<div class="card-title" ng-if="!rule.unfolded" ng-bind-html="rule.name"></div>
任何人都可以提出为什么rule.name变量上不NG-显示绑定-html出于某种原因?
答
我想规则变量不适用于模板控制器的范围,这就是为什么它不在模板内加载。如果您有一个设置规则变量的服务,请确保它是您的控制器定义的依赖项。然后从服务中设置$ scope.rules = promise/variable。这应该够了吧。另外,正如@Nikhil所建议的那样,你不需要在html模板中包含控制器,就像你在主模板中声明的一样。 希望这有助于。
答
由于您在包含的html中有另一个“ng-controller =”RuleController“”,您正在使用它自己的数据创建新范围。
尝试使用ng-model="$parent.rule
来访问数据,而不是在子模板中使用ng-controller
。
规则是一个数组(上面添加了一个例子) – Zabs
可能想看看我的问题的答案。 http://stackoverflow.com/questions/35029938/angular-doesnt-set-databinding。我不知道它是否帮助 –