में निर्देशों में $ स्थान का उपयोग कैसे करें मैं एक निर्देश बना रहा हूं जिसमें उपयोगकर्ता इसे दूसरे पृष्ठ पर ले जाता है। कुछ हद तक एक अनुकूलित "href" टैग की तरह। मैं उम्मीद कर रहा था कि $ स्थान पुनर्निर्देशन समारोह का ख्याल रखेगा लेकिन कारणों से मुझे ये नहीं पता, यह काम नहीं करता है। अगर मैं नियंत्रक में $ स्थान का उपयोग करता हूं तो यह काम करता है लेकिन निर्देश के भीतर से, यह नहीं करता है। यहां कोड है:AngularJs
angular.module("myAPP")
.directive('hpHref', ['$location' , function($location){
return {
restrict : "A",
link : function(scope, el, attr) {
el.bind('click', function(){
// more logic
console.log("Code reaches here:");
$location.path("/" + attr.hpHref);
});
}
}
}]);
निर्देशक के हिस्से के रूप में नियंत्रक होने का भी प्रयास किया गया। यानी
angular.module("myApp")
.directive('hpHref', function(){
return {
restrict : "A",
scope: {},
controller : ['$scope', '$location', function($scope, $location){
$scope.goToUrl = function (url) {
// some more logic
console.log("Code reaches here");
$location.path(url);
};
}],
link : function(scope, el, attr) {
el.bind('click', function(){
scope.goToUrl(attr.hpHref);
});
}
}
});
यह भी काम नहीं करता है। समस्या क्या है? और निर्देशों के भीतर $ स्थान का उपयोग कैसे किया जा सकता है?
यह काम नहीं करता है क्योंकि आप शाब्दिक स्ट्रिंग "url" के पथ को सेट करने का प्रयास कर रहे हैं, यूआरएल तर्क का मूल्य नहीं। $ Location.path ("url") में url के आस-पास के उद्धरण निकालें –
@ मार्कशेरेटा यह कोड को कॉपी करने में एक टाइपो था। मैंने – dade
प्रश्न को अद्यतन किया है, अब $ apply.goToUrl क्या है? –