javascript - 使用 ng-repeat、ng-click 和 $scope

标签 javascript html angularjs

我正在尝试设置一个选项卡式导航栏,它根据单击的选项卡在 div 中显示内容。我像这样在我的 HTML 中使用 ng-repeat:

HTML:

<ul class ="sidebar-nav">
  <li ng-repeat="category in categories" ng-click="category.method()">{{category.name}}</li>
</ul>

但是,它并没有在单击时调用方法将其设置为事件选项卡,而是我看到在页面加载时列出了所有选项卡,并且事件选项卡在单击时不会更改。这是我的 Angular :

$scope.setTab = function(activateTab) {
  $scope.tab = activateTab;
  console.log(activateTab);
}; 

$scope.categories = [
  {
  "name" : "Common Tools",
  method : $scope.setTab(1)
  },
...

我尝试使用匿名函数设置选项卡,并在各个类别中使用“id”编号,但我得到了相同的行为。有什么建议吗?

最佳答案

将您的代码更新为:

$scope.setTab = function(activateTab) {
  $scope.tab = activateTab;
}; 

$scope.categories =[{"name":"Common Tools"}];

在您的 HTML 中:

<ul class ="sidebar-nav">
  <li ng-repeat="category in categories" 
      ng-click="setTab(category)" 
      ng-class="{active: tab == category}">{{category.name}}</li>
</ul>

然后您可以为选项卡的 .active 类设置样式。

关于javascript - 使用 ng-repeat、ng-click 和 $scope,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27023314/

相关文章:

javascript - 如何在 Highcharts 中具有相同的悬停点颜色?

javascript - 在 Coffeescript 类的函数中指定第 n 个参数为 "super"

javascript - nodejs 按未知键的数值 desc 对对象进行排序?

javascript - 使社交图标可点击

jquery - 如果用户向下滚动页面,第一个标题元素就会消失

angularjs - 在 GoLang 中解析嵌入式结构形式的值

javascript - 如何创建自动求和计算输入字段

Javascript Alert 干扰 Ajax

html - 停止图像调整包含 DIV 的大小

javascript - 单击新选项卡中的打开链接时,ng-click 不起作用