javascript - ng-click ="currentTpl='/inventory.html'"内部 ng-repeat 不工作

标签 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, -->

最佳答案

问题是 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/

关于javascript - ng-click ="currentTpl='/inventory.html'"内部 ng-repeat 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26977357/

相关文章:

javascript - AngularJS 从 Controller 调用 Firebase uid

javascript - AngularJs 指令 - &lt;script&gt; inside template

javascript - 根据参数字符串值显示 JSON 值

JavaScript 不断重新加载我的页面

angularjs - 如何使用文件上传字段扩展 angular-xeditable 可编辑行

angular - 为 Angular 4的不同页面设置不同布局的最佳方法

angular - 如何使用带有 @defer 的异步管道在 Angular 17 中的模板中加载和声明变量

javascript - jQuery 触发器仅在第一次发生

javascript - HTML 列表过滤器,如果未找到数据,则会显示消息

javascript - 使用 flow.js + ng-flow 将文件上传到 WebAPI 2