2014-12-16 21 views
17

Ok, tôi đã bị mắc kẹt ở đây một thời gian, và tôi chắc chắn rằng nó là một cái gì đó tương đối câmng-bấm vào góc không làm việc trong div

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> 

Tại sao không ng- nhấp vào đây? Có vẻ như câu hỏi này được hỏi rất nhiều, nhưng không có câu trả lời nào có vẻ hữu ích. Nó cũng giống như di chuyển div ra khỏi lặp lại làm cho nó hoạt động, nhưng một lần nữa, tôi không chắc chắn lý do tại sao.

Cảm ơn

Trả lời

18

Di vm.

Kết quả:

<div ng-repeat="course in vm.Courses" ng-click="OpenCourse(course.Id)"> 

Tại sao ?, vì tất cả mọi thứ bạn thiết lập để $scope trở nên có sẵn trên một phần, sau đó bạn chỉ cần gọi nó.

7

Việc thiếu "vm" trước OpenCourse (course.Id) thực sự là một lỗi đánh máy trên một phần của tôi khi tạo plunker. Tôi đã đánh dấu một câu trả lời là chính xác, vì nó đã làm cho plunker để làm việc, nhưng vấn đề của tôi không phải là điều này. Hóa ra tôi đã có một lớp được gán cho div bên ngoài đang thay đổi chỉ mục z, đặt div đó "đằng sau" những người khác, và không cho phép nhấp chuột để truyền bá.

+0

Tôi gặp sự cố tương tự khi nút ở bên trong

+1

Vui lòng bỏ chọn câu trả lời khác nếu câu trả lời không thực sự trả lời câu hỏi của bạn. – idmean

+5

Nó đã trả lời câu hỏi. Vấn đề là câu hỏi của tôi không thể hiện đúng vấn đề của tôi –

2

Nếu bạn sử dụng <label> bạn có thể gặp phải hành vi lạ khi nhấp vào nó. Hãy thử thay đổi nó thành cái gì khác nếu có thể và kiểm tra lại mã của bạn.

Các vấn đề liên quan