【问题标题】:Cannot bind html in AngularJS partial for some unknown reason?由于某些未知原因,无法在 AngularJS 部分中绑定 html?
【发布时间】:2016-11-21 20:16:53
【问题描述】:

我有一个 ng-repeat,它使用部分 html 文件循环遍历并将项目显示到页面,由于某种原因,部分中的变量不显示,但是变量 {{rule.name}} 显示在外部部分显示正常吗?

rules 是一个数组,例如 rules[0].name = '我的第一条规则'; 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-bind-html 上?

【问题讨论】:

标签: javascript html angularjs


【解决方案1】:

你不必在里面给ng-controller="RuleController" rule.html 文件。

【讨论】:

  • 干杯尼基尔!很快就会接受.. 仍然掌握 Angular :)
【解决方案2】:

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

尝试改用ng-model="$parent.rule 访问数据,不要在您的子模板中使用ng-controller

【讨论】:

    【解决方案3】:

    我想规则变量在模板控制器的范围内不可用,这就是它没有加载到模板中的原因。如果您有一个设置规则变量的服务,请确保它是您的控制器定义的依赖项。然后从服务中设置 $scope.rules = promise/ 变量。这应该够了吧。此外,正如@Nikhil 建议的那样,您不需要在 html 模板中包含控制器,正如您在主模板中所说的那样。 希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-18
      相关资源
      最近更新 更多