由于某些未知原因,无法在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出于某种原因?

+0

规则是一个数组(上面添加了一个例子) – Zabs

+0

可能想看看我的问题的答案。 http://*.com/questions/35029938/angular-doesnt-set-databinding。我不知道它是否帮助 –

您不必在 rule.html文件中给ng-controller="RuleController"

+0

干杯Nikhil!很快就会接受..仍然在与Angular握手:) – Zabs

我想规则变量不适用于模板控制器的范围,这就是为什么它不在模板内加载。如果您有一个设置规则变量的服务,请确保它是您的控制器定义的依赖项。然后从服务中设置$ scope.rules = promise/variable。这应该够了吧。另外,正如@Nikhil所建议的那样,你不需要在html模板中包含控制器,就像你在主模板中声明的一样。 希望这有助于。

由于您在包含的html中有另一个“ng-controller =”RuleController“”,您正在使用它自己的数据创建新范围。

尝试使用ng-model="$parent.rule来访问数据,而不是在子模板中使用ng-controller