Làm thế nào để chỉ thị có thể gọi một hàm từ bộ điều khiển với một số tham số?Gọi chức năng điều khiển từ chỉ thị với các tham số
Tôi sẽ đưa biến myVar vào phạm vi. $ Apply (attrs.whattodo);
HTML:
<div ng-app="component">
<div ng-controller="ctrl">
<span ng-repeat="i in myarray">
<span customattr whattodo="addVal">{{i}}</span>
</span>
</div>
khiển JS:
function ctrl($scope) {
$scope.myarray = [1];
$scope.addVal = function (value) {
$scope.myarray.push(value);
}
}
Chỉ JS:
angular.module('component', []).directive('customattr', function() {
return {
restrict: 'A',
link: function (scope, element, attrs) {
var myVar = 5;
scope.$apply(attrs.whattodo);
}
};
});
Điều đó hoạt động rất tốt. Một điều cuối cùng: ví dụ tôi đưa ra là một ví dụ dumy. Nhưng với ví dụ "thực" của tôi: giá trị là một danh sách các dicts mà tôi render với một số văn bản đầu vào. Nếu tôi đặt phạm vi trống hoặc phạm vi bạn đã cung cấp, tất cả các trường nhập của tôi sẽ trống. Bất kỳ ý tưởng tại sao?Cảm ơn bạn – JohnCastle
Thực sự khó tưởng tượng ra nó, sẽ không phức tạp để bạn di chuyển eample thực của bạn thành plunker? Cảm ơn – Maksym
Tất nhiên! Đây là: http://plnkr.co/edit/mu9DM1dEyZ36UqVvw0DM Chỉ cần đặt phạm vi thành true trong chỉ thị và bạn sẽ thấy "Toto" trong đó. Hoặc – JohnCastle