控制台日志返回'未定义'对于$ index。角

时间:2016-01-12 05:58:29

标签: javascript angularjs

所有

之前我写过这类代码,现在我无法弄清楚我做错了什么。

单击菜单按钮时,此代码片段正在运行。

$scope.show = function($index){
    console.log($index);
  };

控制台日志正在返回' undefined'。

任何人都可以帮我弄清楚我做错了吗?

下面的Js bin: https://jsbin.com/keteji/edit?html,js,console,output

非常感谢帮助。

谢谢,全部

2 个答案:

答案 0 :(得分:2)

$indexngRepeat范围的属性。

您无法在控制器范围内找到它。

答案 1 :(得分:2)

  

$index是重复元素的迭代器偏移量,它在ng-repeat

中的每个模板实例的本地范围上公开

如果您有dataArray作为菜单列表,请使用ng-repeatiterations

中获取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;
&#13;
&#13;