所有
之前我写过这类代码,现在我无法弄清楚我做错了什么。
单击菜单按钮时,此代码片段正在运行。
$scope.show = function($index){
console.log($index);
};
控制台日志正在返回' undefined'。
任何人都可以帮我弄清楚我做错了吗?
下面的Js bin: https://jsbin.com/keteji/edit?html,js,console,output
非常感谢帮助。
谢谢,全部
答案 0 :(得分:2)
$index
是ngRepeat
范围的属性。
您无法在控制器范围内找到它。
答案 1 :(得分:2)
中的每个模板实例的本地范围上公开
$index
是重复元素的迭代器偏移量,它在ng-repeat
如果您有dataArray
作为菜单列表,请使用ng-repeat
在iterations
view
试试这个:
var app = angular.module('angularApp',[]);
app.controller('AppController',['$scope',function($scope){
$scope.dataJson = dataArray;
// console.log($scope);
$scope.show = function($index){
alert($index);
};
$('.nav li').click(function(){
$('.nav li').removeClass('active');
$(this).addClass('active');
});
}]);
var dataArray =[
{
"id":1,
"name":"Home",
"visible":true
},
{
"id":2,
"name":"Profile",
"visible":false
},
{
"id":3,
"name":"Messages",
"visible":false
}
];

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<body ng-app="angularApp">
<div ng-controller="AppController">
<ul class="nav nav-pills">
<li role="presentation" ng-repeat="d in dataJson" ng-click="show($index)"><a href>{{d.name}}</a></li>
</ul>
<div class="row">
<div class="col-md-12" ng-repeat="pages in dataJson">
<h3 ng-show="pages.visible">
{{pages.name}}
</h3>
</div>
</div>
</div>
</body>
&#13;