Làm cách nào để chuyển đối số cho phương thức end()
của bộ điều khiển từ chỉ thị?Vượt qua đối số cho phương thức điều khiển cha từ chỉ thị
Chỉ
var fileuploader = function() {
return {
restrict: 'E',
scope: {
onEnd: '&',
},
controller: function ($scope) {
// When upload is done
$scope.onEnd(/* file */);
}
};
}
khiển
module.controller('Ctrl', function ($scope) {
$scope.end = function (file) {
console.log('file', file);
};
});
mẫu:
<div ng-controller='Ctrl'>
<fileuploader on-end='end()'></fileuploader>
</div>
Tôi cũng tự hỏi nếu điều này là một cách làm ngớ ngẩn vì tôi không thấy điều này được sử dụng ở bất cứ nơi nào khác. Có lẽ sau đây là góc cạnh hơn?
Chỉ
var fileuploader = function() {
return {
restrict: 'E',
scope: {
onEnd: '=',
},
controller: function ($scope) {
// When upload is done
$scope.file = file;
}
};
}
khiển
module.controller('Ctrl', function ($scope) {
$scope.$watch('file', function (val) {
console.log('file', val);
});
});
Template
<div ng-controller='Ctrl'>
<fileuploader on-end='file'></fileuploader>
</div>
này cho biết thêm một số indirec mặc dù và có thể ít hơn về phía trước sau đó gọi một phương pháp điều khiển.
có thể trùng lặp của [phương thức gọi của bộ điều khiển gốc từ chỉ thị trong AngularJS] (http://stackoverflow.com/questions/15991137/calling-method-of-parent-controller-from-a-directive-in-angularjs) – Stewie
Câu đố luôn xúc tiến quá trình giải pháp, nhưng vấn đề của bạn có truyền các đối số cho hàm 'kết thúc' của bạn, hoặc nó không làm việc cho bạn chút nào? – Nix
@Nix, đó thực sự là câu hỏi của tôi. Bản sao có thể cho tôi câu trả lời. – Pickels