मैं एक कोणीय-पट्टा मोडल/एक नियंत्रक के साथ एक तरफ का उपयोग करने का सही तरीका खोजने के लिए संघर्ष कर रहा हूं।नियंत्रक के साथ एक मॉडल बनाने के लिए कोणीय-पट्टा का उपयोग कैसे करें?
हां, कॉलिंग कोड $scope
इंजेक्ट कर सकता है, जो इसे मोडल में उपलब्ध करा सकता है। लेकिन इसके साथ मुद्दे हैं।
myModal = $modal({
scope: $scope,
template: 'template.html',
show: false,
backdrop: "static",
keyboard: false,
persist: true
});
यह संभावित मोडल-केवल विधियों और गुणों के साथ कॉलिंग नियंत्रक को प्रदूषित करेगा।
मैं आमतौर पर "नियंत्रक एएस" का उपयोग करता हूं, और इसलिए पहले स्थान पर मोडल करने के लिए $scope
भी नहीं है!
आप एक नया $scope
बना सकते हैं और फिर उसमें विधियों को सम्मिलित कर सकते हैं, लेकिन फिर, इसे $scope
के मूल नियंत्रक में इंजेक्शन की आवश्यकता होगी। बुरा बुरा बुरा।
यदि मैं मॉडल टेम्पलेट के अंदर ng-controller
का उपयोग करता हूं, तो मेरा नियंत्रक हो सकता है। लेकिन वह मुझे एक और समस्या देता है: अब मैं मोडल नियंत्रक में डेटा इंजेक्ट नहीं कर सकता, और मोडल बंद होने पर और मोडल से डेटा लौटने पर मेरा कॉलिंग कोड पता नहीं चल सकता है (केवल एक कारखाना शामिल है अभिभावक और बाल नियंत्रक डेटा सिंक्रनाइज़)।
मैं वास्तव में यह सबसे अच्छा तरीका बनाने के लिए संघर्ष कर रहा हूं।
कोई विचार?
चीयर्स
अद्यतन
यह कैसे मैं अब के लिए यह करना है:
मेरे टेम्पलेट में मैं एक निर्देश मोडल खुल जाता है कि सुनिश्चित करें।
उदाहरण:
<my-modal
on-update="ctrl.OnDialogUpdate">
</my-modal>
तो मूल रूप से निर्देश मेरी मोडल कॉल करता है और जब मोडल बंद कर देता है या एक परिणाम के साथ वापसी करना चाहता है, यह विधि निर्देश पैरामीटर में निर्दिष्ट कहता है।
(function() {
'use strict';
angular.module('app').directive('myModal',myModal);
function myModal(){
return {
restrict: 'E',
// The modal callback specified in the directive tag
scope: {
onUpdate: '&?'
},
replace: true,
// This is the template for the directive, not the modal
templateUrl: 'button.html',
controllerAs: 'ctrl',
bindToController: true,
compile: function (element, attrs) {
return function (scope, element, attrs) {
};
},
/*@ngInject*/
controller: function($scope, $log, $aside){
var self = this;
var myDialog = $aside({
// Dialog template
template: 'my-modal.template.html',
show: false,
animation: 'am-fade-and-slide-right',
placement: 'right',
backdrop: true,
html: true,
container: '',
scope: $scope
});
// Opens modal
self.ShowDialog = function(){
myDialog.$promise.then(function() {
myDialog.show();
})
};
// Expose Update() method to the dialog template
$scope.Update = function(){
if(angular.isFunction(self.onUpdate)) {
self.onUpdate()();
}
}
}
}
}
})();
मैंने मूल रूप से अपनी समस्या हल कर ली है। मैं जो करता हूं वह एक निर्देश बना रहा है जो $ मोडल खोलता है। निर्देश में एक नियंत्रक है, और एक $ स्कोप भी है जो संवाद में इंजेक्शन दिया जाता है। मैं बाद में कुछ कोड जोड़ने की कोशिश करूंगा .. – Spock
मैं अभी भी एक ही समस्या को हल करने के लिए बेताब हूं।यदि आप अपने समाधान को उत्तर के रूप में पोस्ट कर सकते हैं तो मैं बहुत आभारी हूं। – Trevor
एक वैध समाधान को पंक करना बहुत मुश्किल है, लेकिन मैं यह समझाने की कोशिश करूंगा कि मैंने क्या किया (प्रश्न अपडेट करेगा) – Spock