यहां jsfiddle मेरी स्थिति का उदाहरण है।AngularJS में पृथक दायरे/निर्देश से प्रसारण और कॉलिंग नियंत्रक कार्यों को प्राप्त करना?
सबसे पहले, क्या प्राप्त आयामों के साथ निर्देश बनाने का यह सही तरीका है? फिर, प्रत्येक निर्देश दूसरों से अलग किया जाना चाहिए .. इसलिए मैं scope: {}
का उपयोग कर रहा हूं।
समस्या कार्यों कि नियंत्रक में हैं बुला रहा है .. और यह प्रसारण या तो प्राप्त नहीं होता है लगता है ..
मुझे यकीन है कि यह एक छोटी सी समस्या है कर रहा हूँ .. मैं कोणीय करने के लिए नया हूँ :)
<div ng-app="test">
<div ng-controller="containerCtrl">
<component ng-repeat='c in components' id="c.id" my-width="{{c.width}}" my-height="{{c.height}}">
</div>
</div>
नियंत्रक:
controller('containerCtrl', function ($scope) {
$scope.components = [{ id: "c1", width: 100, height: 100 },
{ id: "c2", width: 200, height: 100 },
{ id: "c3", width: 300, height: 100 }];
//in the actual controller I am using a socket provider and doing
//socket.forward([
// 'initPage',
// 'refreshPage'
// ], $scope);
//simulating it with a simple broadcast here..
$scope.$broadcast("onSomething", "");
$scope.doSomething = function (data) {
alert("doing something");
};
}).
मैं एक पेज जिसमें मैं एनजी-दोहराने के साथ घटकों के एक नंबर लोड है
और निर्देश:
directive('component', function() {
var linkFn = function(scope, element, attrs) {
$(element).
resizable({
stop: function(event, ui) {
scope.emitSomething(attrs.id, ui.position);
}
});
scope.$on('onSomething', function(res) {
alert("onSomething!");
});
};
return {
restrict: 'E',
template: '<div class="ui-widget-content" style="width: {{width}}px; height: {{height}}px;"></div>',
replace: true,
scope: {
width:'@myWidth',
height:'@myHeight'
},
link : linkFn
};
});
बिल्कुल सही, धन्यवाद :) यहाँ है काम कर jsfiddle http://jsfiddle.net/dr9c6/6/क्या यह कहना सही है कि टैग में घोषित फ़ंक्शन नियंत्रक के अंदर फ़ंक्शन है, जबकि दूसरा जो '{data:} 'प्राप्त करता है वह निर्देशक दायरे का कार्य है? –
fusio
@ फ़्यूसियो, हाँ यह सही है। –
मुझे एक समान समस्या है ... नियंत्रकों से प्रसारण मेरे कार्यक्रमों को निर्देशों में नहीं चलाता है ... टाइमआउट कभी-कभी हल करता है लेकिन हमेशा नहीं ... इसके अलावा, ऐप काफी भारी है और मैं भरोसा नहीं करना चाहता तथ्य यह है कि समय हमेशा इसे हल करने जा रहा है ... क्या ऐसा करने का कोई और तरीका है? – ackuser