2013-02-25 27 views
7

Tôi đã có đoạn HTML sau:góc: ng-click với một tham số không làm việc

<i style="cursor:pointer" ng-click="addName()" class="icon-plus"></i> 
<i style="cursor:pointer" ng-click="delName({{$index}})" class="icon-remove"></i> 

Và các chức năng sau đây trong điều khiển của tôi $scope:

$scope.addName = function() { 
    $scope.names.push($scope.newName); 
    $scope.newName = ''; 
}; 
$scope.delName = function(i) { 
    $scope.names.splice(i, 1); 
}; 

Các addName() hoạt động tốt nhưng delName() không bao giờ được gọi. Có thể không ràng buộc một ng-clik với một hàm bằng một đối số không?

Trả lời

14

Các lỗi được trong html, những ng-repeat $ index không nên được đánh giá trước:

Đây là HTML hợp lệ:

<i style="cursor:pointer" ng-click="delName($index)" class="icon-remove"></i> 
+1

Tôi gặp vấn đề tương tự, updateProductState ({{product_id}}), nó không kích hoạt chức năng, nhưng nếu tôi mã cứng một giá trị tĩnh nó sẽ làm việc. bất kỳ ý tưởng? cảm ơn – user1883793

+5

bạn đã thử 'updateProductState (product_id)' chưa? Bạn không cần '{{}}' trong một chỉ thị ng –

+0

Điều đó hoạt động! Cảm ơn – user1883793

0

Mã này có vẻ ổn với tôi, bạn có thể cô lập vấn đề của mình trong jsFiddle không?

EDIT: Đã xóa câu trả lời không đúng về mối nối không thay đổi thành mảng.

+0

Plain w rong: 'splice'does sửa đổi mảng ban đầu và trả về các mục bị loại bỏ. Vấn đề của tôi là chức năng không bao giờ được gọi là anyway. –

+0

Ah, bạn nói đúng, tôi thấy mệt. Chỉ cần trả lời một câu hỏi khác về Array.filter trả về một mảng mới. Lấy làm tiếc. –

+0

không có vấn đề :) :) –

0

Bạn có thể làm như sau

<i ng-click="delName($index)" class="icon-remove"></i> 

Trong css

[ng-click], 
[data-ng-click], 
[x-ng-click] { 
    cursor: pointer; 
} 
Các vấn đề liên quan