से पैरेंट कंट्रोलर विधि के लिए तर्क पास करें मैं निर्देशक से end()
नियंत्रक के लिए तर्कों को कैसे पास करूं?निर्देश
निर्देशक
var fileuploader = function() {
return {
restrict: 'E',
scope: {
onEnd: '&',
},
controller: function ($scope) {
// When upload is done
$scope.onEnd(/* file */);
}
};
}
नियंत्रक
module.controller('Ctrl', function ($scope) {
$scope.end = function (file) {
console.log('file', file);
};
});
टेम्पलेट:
<div ng-controller='Ctrl'>
<fileuploader on-end='end()'></fileuploader>
</div>
मैं भी आश्चर्य है कि अगर यह एक है चीजों को करने का ngular तरीका क्योंकि मैं इसे कहीं और इस्तेमाल नहीं देखा। शायद निम्नलिखित अधिक कोणीय है?
निर्देशक
var fileuploader = function() {
return {
restrict: 'E',
scope: {
onEnd: '=',
},
controller: function ($scope) {
// When upload is done
$scope.file = file;
}
};
}
नियंत्रक
module.controller('Ctrl', function ($scope) {
$scope.$watch('file', function (val) {
console.log('file', val);
});
});
खाका
<div ng-controller='Ctrl'>
<fileuploader on-end='file'></fileuploader>
</div>
यह कुछ indirec कहते हैं यद्यपि टयन हालांकि और शायद कम आगे है तो नियंत्रक विधि को बुला रहा है।
[AngularJS में एक निर्देश से माता-पिता नियंत्रक की विधि बुला] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/15991137/calling-method-of-parent-controller-from-a-directive-in-angularjs) – Stewie
फिडल हमेशा समाधान प्रक्रिया में तेजी लाते हैं, लेकिन क्या आपका मुद्दा आपके 'अंत' समारोह में तर्क पारित कर रहा है, या यह आपके लिए बिल्कुल काम नहीं कर रहा है? – Nix
@Nix, यह वास्तव में मेरा सवाल था। संभावित डुप्लिकेट ने मुझे जवाब दिया। – Pickels