2012-10-13 13 views
10

Khi tôi gọi trong một nhóm ng-repeatAngularJs ng-click kiện chỉ được kích hoạt với các đối số đen

<span ng-click="remove({{user.id}})">Delete</span>

các loại bỏ chức năng là không gọi

nhưng khi tôi thay thế biểu thức bằng một đối số theo nghĩa đen được gọi là (hoạt động đúng):

<span ng-click="remove(123)">Delete</span>

Biểu thức '{{user.id}}' được đánh giá đúng và chỉ có giá trị số nguyên.

Bất kỳ ai có ý tưởng gì đang xảy ra? Tương tự xảy ra với các thẻ neo (với href = "").

Trả lời

34

ng-click="remove(user.id)" nên làm việc, ng-click đánh giá nó nội dung, do đó bạn không cần phải suy

+0

Oh ok, cảm ơn bạn. Điều làm tôi khó chịu là không có ngoại lệ nào được ném và mã html trông hoàn toàn ổn, bởi vì biểu thức đã được đánh giá đúng. – Sam

+1

Để cụ thể hơn, ngClick sẽ chạy bất kỳ chuỗi nào bên trong nó là dấu ngoặc kép thông qua $ eval(). Bạn có thể tìm thêm thông tin tại đây: http://docs.angularjs.org/api/ng.$rootScope.Scope#$eval –

6

Bạn không nên sử dụng dấu ngoặc nhọn trong các biểu ng-click. Hãy thử điều này thay vì:

<span ng-click="remove(user.id)">Delete</span> 

Và hãy chắc chắn kiểm tra tài liệu AngularJS biểu: http://docs.angularjs.org/guide/expression

+1

+1 cho liên kết biểu thức. cảm ơn một tấn. – rjha94