ठीक है, लगता है कि मैं समझ गया ...
छोटी पृष्ठभूमि पहले: मुझे जिस कारण की आवश्यकता थी, वह यह था कि कोणीय एक्सप्रेस के शीर्ष पर कोणीय चिपका था और जेड ने मेरे लिए मेरे हिस्से की प्रक्रिया की थी।
तो यहाँ whatchya क्या होगा ... (बीयर पीना और पहले उस पर 20+ घंटे खर्च करना !!!) ... !!!
जब आप अपना मॉड्यूल सेट करते हैं, तो $routeProviderविश्व स्तर पर सहेजें :
// app.js:
var routeProvider
, app = angular.module('Isomorph', ['ngResource']).config(function($routeProvider){
routeProvider = $routeProvider;
$routeProvider
.when('/', {templateUrl: '/login', controller: 'AppCtrl'})
.when('/home', {templateUrl: '/', controller: 'AppCtrl'})
.when('/login', {templateUrl: '/login', controller: 'AppCtrl'})
.when('/SAMPLE', {templateUrl: '/SAMPLE', controller: 'SAMPLECtrl'})
.when('/map', {templateUrl: '/map', controller: 'MapCtrl'})
.when('/chat', {templateUrl: '/chat', controller: 'ChatCtrl'})
.when('/blog', {templateUrl: '/blog', controller: 'BlogCtrl'})
.when('/files', {templateUrl: '/files', controller: 'FilesCtrl'})
.when('/tasks', {templateUrl: '/tasks', controller: 'TasksCtrl'})
.when('/tasks/new', {templateUrl: '/tasks/new', controller: 'NewTaskCtrl'})
.when('/tasks/:id', {templateUrl: '/tasks', controller: 'ViewTaskCtrl'})
.when('/tasks/:id/edit', {templateUrl: '/tasks', controller: 'EditTaskCtrl'})
.when('/tasks/:id/delete', {templateUrl: '/tasks', controller: 'DeleteTaskCtrl'})
.otherwise({redirectTo: '/login'});
});
// ctrls.js
...
app.controller('EditTaskCtrl', function($scope, $routeParams, $location, $http){
var idParam = $routeParams.id;
routeProvider.when('/tasks/:id/edit/', {templateUrl: '/tasks/' + idParam + '/edit'});
$location.path('/tasks/' + idParam + '/edit/');
});
...
कि जरूरत से ज्यादा जानकारी हो सकती है ...
मूल रूप से, आप अपने मॉड्यूल के $routeProviderसंस्करण को विश्व स्तर पर संग्रहीत करना चाहते हैं , उदाहरण के लिए routeProviderताकि इसे आपके नियंत्रकों द्वारा एक्सेस किया जा सके।
तब आप बस routeProviderएक नया मार्ग बना सकते हैं और उपयोग कर सकते हैं (आप एक मार्ग को 'रीसेट नहीं कर सकते' / 'रिप्राइज़'; आपको एक नया बनाना होगा), मैंने सिर्फ अंत में एक स्लैश (/) जोड़ा ताकि यह अर्थपूर्ण हो पहले की।
फिर (अपने नियंत्रक के अंदर), templateUrlउस दृश्य पर सेट करें जिसे आप हिट करना चाहते हैं।
ऑब्जेक्ट की controllerसंपत्ति को बाहर .when()निकालें, ऐसा न हो कि आपको एक अनंत अनुरोध लूप मिले।
और अंत में (अभी भी नियंत्रक के अंदर), $location.path()उस रूट पर पुनर्निर्देशित करें जो अभी बनाया गया था।
यदि आप एक्सप्रेस ऐप पर एक कोणीय एप्लिकेशन को थप्पड़ मारने के तरीके में रुचि रखते हैं, तो आप यहां मेरे रेपो को कांटा कर सकते हैं: https://github.com/cScarlson/isomorph ।
और यह विधि आपके लिए AngularJS Bidirectional Data-Bindings रखने की भी अनुमति देती है, यदि आप अपने HTML को WebSockets का उपयोग करके अपने डेटाबेस में बाँधना चाहते हैं: अन्यथा इस विधि के बिना, आपका Angular data-bindings सिर्फ आउटपुट देगा {{model.param}}।
यदि आप इस समय इसे क्लोन करते हैं, तो आपको इसे चलाने के लिए अपनी मशीन पर mongoDB की आवश्यकता होगी।
आशा है कि यह इस मुद्दे को हल करता है!
कोड़ी
अपने स्नान के पानी को मत पीजिए।
config()केवल प्रदाताओं को इंजेक्शन लक्ष्य दिया जाता है, न कि वास्तविक सेवा उदाहरण जैसे$routePrams।