वर्तमान में मेरे पास एक AngularJS एप्लिकेशन है जिसमें राउटिंग बिल्ट इन है। यह काम करता है और सब कुछ ठीक है।
मेरी app.js फ़ाइल इस तरह दिखती है:
angular.module('myapp', ['myapp.filters', 'myapp.services', 'myapp.directives']).
config(['$routeProvider', function ($routeProvider) {
$routeProvider.when('/', { templateUrl: '/pages/home.html', controller: HomeController });
$routeProvider.when('/about', { templateUrl: '/pages/about.html', controller: AboutController });
$routeProvider.when('/privacy', { templateUrl: '/pages/privacy.html', controller: AboutController });
$routeProvider.when('/terms', { templateUrl: '/pages/terms.html', controller: AboutController });
$routeProvider.otherwise({ redirectTo: '/' });
}]);
मेरे ऐप में एक CMS बनाया गया है जहाँ आप / html निर्देशिका के भीतर नई html फाइलें कॉपी और जोड़ सकते हैं ।
मैं अभी भी रूटिंग प्रदाता के माध्यम से जाना चाहूंगा, हालांकि नई गतिशील रूप से जोड़ी गई फ़ाइलों के लिए भी।
एक आदर्श दुनिया में रूटिंग पैटर्न होगा:
$ मार्गप्रोपिडर.वन ('/ pagename ', {templateUrl: '/ Pages / pagename .html', कंट्रोलर: CMSController});
इसलिए यदि मेरा नया पृष्ठ नाम "contact.html" है, तो मैं कोणीय "लाइक" / संपर्क "और" /pages/contact.html "पर पुनर्निर्देशित करना चाहूंगा।
यह भी संभव है ?! और यदि ऐसा है तो कैसे ?!
अपडेट करें
अब मेरे पास मेरे रूटिंग कॉन्फिग में यह है:
$routeProvider.when('/page/:name', { templateUrl: '/pages/home.html', controller: CMSController })
और मेरे सीएमएसकंट्रोलर में:
function CMSController($scope, $route, $routeParams) {
$route.current.templateUrl = '/pages/' + $routeParams.name + ".html";
alert($route.current.templateUrl);
}
CMSController.$inject = ['$scope', '$route', '$routeParams'];
यह वर्तमान टेम्प्लेट को सही मान पर सेट करता है।
हालाँकि मैं अब नए टेम्पलेटउपयोग मूल्य के साथ एनजी-व्यू बदलना चाहूंगा । यह कैसे पूरा किया जाता है?