angular.module('mainApp').
controller('dynamicRouteController', ['$scope', '$controller', '$routeParams', function($scope, $controller, $routeParams) {
if(/^\d+$/.test($routeParams.pageOrName)) {
$scope.controller = $controller('thisController', { $scope: $scope }).constructor;
$scope.templateUrl = '/www/thisPage';
} else {
$scope.controller = $controller('thatController', { $scope: $scope }).constructor;
$scope.templateUrl = '/www/thatPage';
}
}]);
में $ नियंत्रक का उपयोग minification त्रुटियों को खत्म करने:कैसे जब यह minifies AngularJS
"use strict";
angular.module("mainApp").
controller("dynamicRouteController",["$scope","$controller","$routeParams",function(a,b,c){
/^\d+$/.test(c.pageOrName)?
(a.controller=b("thisController",{$scope:a}).constructor,a.templateUrl="/www/thisPage"):
(a.controller=b("thatController",{$scope:a}).constructor,a.templateUrl="/www/thatPage")
}])
इस को कम करने में समस्या आ रही है, मैं की वजह से इसके बारे में सोच {$ गुंजाइश: $ scope} परिवर्तन किया जा रहा। .. पहली बार मैंने इस विधि में भाग लिया है/इस विधि का उपयोग किया है। किसी को इसे लिखने का एक बेहतर तरीका पता है, इसलिए यह सही ढंग से कम हो जाता है?
संपादित करें: तो क्या हो रहा है, यह है कि यह {$ स्कोप: ए} गुजर रहा है जो ठीक है, लेकिन उस संदर्भित नियंत्रक पर, जब यह छोटा हो गया है, तो $ गुंजाइश एक या बी या ई बन गया है ... इसलिए यदि मैं "प्री-मिनीफाइड" कोड लिखता हूं, जिसका अर्थ है कि मैं सचमुच पाते हैं कि कौन सा पत्र अन्य नियंत्रक में $ स्कोप का प्रतिनिधित्व करता है, तो मैं इसे काम पर ला सकता हूं, लेकिन यह इतना हैकी! फिर, कोई विचार?
minification कोणीय 1.0.5 के लिए ग्रंट का उपयोग करना ... शायद बाद के संस्करणों में तय हो गई?
2 संपादित करें: एक सभ्य जवाब एक ही फाइल में दोनों नियंत्रकों फेंकने के लिए, स्पष्ट रूप से है ... जो बदसूरत है ... लेकिन यह काम करता है! तो एक नियंत्रक के साथ, मैं 2 उप नियंत्रकों की घोषणा कर रहा हूं, जो लंगड़ा है। यदि आप किसी अन्य तरीके से जानते हैं तो कृपया कक्षा के साथ साझा करें!
बस यहां एक जंगली अनुमान लग रहा है लेकिन '{" $ स्कोप ": $ स्कोप}'? – Phil
अच्छा कॉल फिल, मैंने कोशिश की है कि कोई लाभ नहीं हुआ, हालांकि :( – mclenithan
वहाँ है कि '{[' $ controller'] (http://docs.angularjs.org/api/ng.$controller) doco पर एक टिप्पणी है $ स्कोप: {}} '। इसे – Phil