ng-click =“currentTpl ='/ inventory.html'”内部ng-repeat不起作用

时间:2014-11-17 16:35:13

标签: javascript angularjs angular-template

我有一个菜单列表,当我执行ng-repeat时,它不起作用,但没有ng-repeat它正在工作。

<div class="reports_header_tabs_holder">
      <span ng-repeat="tab in filters.tabs" ng-class="{'active_tab': tab.href == filters.activeTab }">
      <a ng-click="currentTpl='/{{tab.href}}.html'" >{{tab.title}}</a>
      </span>

            能见度             优化             库存         

Fiddle

请阅读评论并相应地尝试,

<!-- if you comment the ng-repeat anchor, above line ( <a ng-click="currentTpl='/{{tab.href}}.html'" >{{tab.title}}</a> ), and uncomment the below anchors, it works, -->

1 个答案:

答案 0 :(得分:2)

问题是ngRepeat为每次迭代创建了单独的范围。这意味着单击要设置子范围属性currentTpl的链接,这不会影响父级别。最简单的修复方法是直接引用父范围变量:

<span ng-repeat="tab in tabs">
     <a ng-click="$parent.currentTpl = '/' + tab.href + '.html'" >{{tab.title}}</a>
</span>

另一个问题是您不应在{{内使用ngClick插值标记,因为这是一个表达式,您不必插入tab.href来获取其值

演示:http://jsfiddle.net/nLC3g/255/