Angular ng-click在div中不起作用

Car*_*uez 18 angularjs angularjs-ng-click

好吧,我已经被困在这里一段时间了,我确信这是相对愚蠢的

http://plnkr.co/edit/YcBnbE5VCU5rizkDWreS?p=preview

<head>
    <link href="http://twitter.github.com/bootstrap/assets/css/bootstrap.css" rel="stylesheet" type="text/css" />
    <link href="http://twitter.github.com/bootstrap/assets/css/bootstrap-responsive.css" rel="stylesheet" type="text/css" />
    <script src="http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.0.3/angular.min.js"></script>

    <script >
        function myCtrl($scope,  $window) {
            $scope.vm = {};
            $scope.vm.Courses = [
              { Id: 1, Name: "Course 1"},
              { Id: 2, Name: "Course 2"}
              ];
            $scope.OpenCourse = function(courseId) {
                $window.alert("Called " + courseId);
            }
        }
    </script>
</head>
<body ng-controller="myCtrl">
    <div>  
        <div ng-repeat="course in vm.Courses" ng-click="vm.OpenCourse(course.Id)">
            <div>
                <div>
                    <label>{{course.Name}}</label>
                </div>
            </div>
        </div>
    </div>
</body>
Run Code Online (Sandbox Code Playgroud)

为什么不在这里点击ng-click?这个问题似乎被问了很多,但没有一个答案似乎有所帮助.它看起来像重复移动div使它工作,但再次,我不知道为什么.

谢谢

Fel*_*ira 20

去掉 vm.

结果:

<div ng-repeat="course in vm.Courses" ng-click="OpenCourse(course.Id)">
Run Code Online (Sandbox Code Playgroud)

为什么?,因为你设置的所有内容都可以$scope部分使用,那么你只需要调用它.


Car*_*uez 8

在OpenCourse(course.Id)面前缺乏"vm"实际上是我在创建plunker时的一个错字.我已经将答案标记为正确,因为它确实导致了攻击者的工作,但我的问题不是这个.事实证明,我有一个分配给外部div的类正在改变z-index,将div放在其他的"后面",并且不允许点击传播.

  • 它确实回答了这个问题.问题是我的问题没有正确表达我的问题 (5认同)