Tôi đang cố gắng tìm cách tốt nhất để có được một vị trí chỉ mục trong một ngRepeat được sử dụng với một chỉ thị tùy chỉnh. Vấn đề tôi đang cố gắng giải quyết là đối với mỗi lần lặp của ngRepeat, tôi muốn tùy chọn biết tôi đang ở đâu trong vòng lặp để tôi có thể tạo một mẫu tùy chỉnh dựa trên vị trí chỉ mục đó.
Trừ khi có một cách tốt hơn để làm điều này, tôi đang cố gắng để làm chức năng này dựa trên tài liệu này từ các directives:
& hay & attr - cung cấp một cách để thực hiện một biểu thức trong bối cảnh của phạm vi gốc. Nếu không có tên attr nào được chỉ định thì tên thuộc tính được giả định giống với tên cục bộ. Đưa ra và định nghĩa widget của phạm vi: {localFn: '& myAttr'}, sau đó cô lập thuộc tính phạm vi localFn sẽ trỏ đến một hàm bao hàm cho biểu thức count = count + value. Thường thì nó là mong muốn để truyền dữ liệu từ phạm vi cô lập thông qua một biểu thức và phạm vi cha, điều này có thể được thực hiện bằng cách chuyển một bản đồ các tên biến và giá trị biến cục bộ vào trong trình bao bọc biểu thức fn. Ví dụ, nếu biểu thức tăng (số lượng) thì chúng ta có thể chỉ định giá trị số lượng bằng cách gọi localFn là localFn ({amount: 22}).
http://docs.angularjs.org/guide/directive
Tôi đang gặp một số khó khăn tìm hiểu chính xác những gì tuyên bố này là nói cho tôi. Vì vậy, những gì tôi đã cố gắng để làm được điều này ...
Đầu tiên chỉ thị ngRepeat được sử dụng cùng với chỉ thị của tôi trong "testTemplate":
<ul>
<li my-attr="test()" my-directive ng-repeat="value in values" class="span2">
</li>
</ul>
Tiếp theo, chỉ thị của tôi định nghĩa:
angular.module('myModule', [])
.directive('myDirective', function() {
return {
replace : true,
transclude : true,
scope : {
test: '&myAttr'
},
templateUrl: 'partials/myTemplate.html',
link : function(scope, element, attrs) {
alert(scope.count);
}
}
});
Cuối cùng, tôi đang cố gắng xác định chức năng "kiểm tra" trong bộ điều khiển cho mẫu cha, nơi chỉ thị đang được tham chiếu.
function TestTemplateCtrl($scope, testTemplate) {
$scope.test = function() {
alert('in test');
$scope.count = "1";
}
}
Vì vậy, vấn đề đầu tiên là chức năng "thử nghiệm" của tôi ở cấp độ gốc không được thực thi. Có lẽ tôi không hiểu làm thế nào các chức năng kiểm tra trong bộ điều khiển cha mẹ nên được gọi. Bây giờ tôi không thực sự tăng được, hoặc là, nhưng là ở trên đúng cách tôi sẽ đi về tăng số của tôi khi tôi nhận được đến thời điểm đó nếu tôi có thể nhận được chức năng kiểm tra để bắn?
Wow Tôi nghĩ rằng tôi đã làm cho điều này phức tạp hơn sau đó cần thiết. Tôi chỉ có thể lấy chỉ mục trong hàm liên kết của tôi với phạm vi. $ Parent. $ Index.Tôi vẫn muốn biết tại sao chức năng "test" của tôi không được kích hoạt mặc dù chỉ để tham khảo trong tương lai. – DavidB