मैं अपने आवेदन जो निम्नलिखित प्रश्न How do you serve a file for download with AngularJS or Javascript? निर्देशक कोड में उल्लेख किया है के लिए एक निर्देश बनाया है अंदर नहीं बनाया जाता है के रूप में की तरह
appModule.directive('fileDownload', function ($compile) {
var fd = {
restrict: 'A',
link: function (scope, iElement, iAttrs) {
scope.$on("downloadFile", function (e, url) {
var iFrame = iElement.find("iframe");
if (!(iFrame && iFrame.length > 0)) {
iFrame = $("<iframe style='position:fixed;display:none;top:-1px;left:-1px;'/>");
iElement.append(iFrame);
}
iFrame.attr("src", url);
});
}
};
return fd;
});
यहाँ गुंजाइश है। $ पर नीचे का उपयोग किया जाता है, जब मैं इस घटना को $ स्कोप के माध्यम से कॉल करता हूं। $ emit या $ scope। $ प्रसारण, यह काम नहीं कर रहा है। मेरे नियंत्रक कोड
function reportsController($scope, $http) {
var self = this;
$scope.$broadcast("downloadFile", 'http://google.com');
$scope.$emit("downloadFile", 'http://google.com');
}
नीचे की तरह है और मेरी html फ़ाइल
<div ng-controller="reportsController" id="repctrl">
<a file-download></a>
</div>
नीचे के रूप में मैं गलत यहाँ क्या कर रहा हूँ?
@ एडिट: संकलन चरण में सब्सक्राइब ($ ऑन) जोड़ा गया ताकि नियंत्रक में $ टाइमआउट के उपयोग से बच सके। Here आप उदाहरण
आप अपने लौटे हुए एफडी ऑब्जेक्ट पर .controller क्यों कर रहे हैं? – Nikos
fd निर्देश फ़ंक्शन के दूसरे तर्क का वापसी मान है, जो केवल निर्देश कॉन्फ़िगरेशन को वापस कर रहा है। '.controller' वास्तव में'। डायरेक्टिव 'के रिटर्न वैल्यू पर कॉल किया जा रहा है, जो मॉड्यूल का संदर्भ है जिसे इसे कहा जाता है। –