2013-03-13 10 views
8

Chrome Packaged Apps बदले बिना कोणीय मार्ग एक नहीं बल्कि सख्त सामग्री सुरक्षा नीति है।स्थान

'Can't open same-window link to "chrome-extension://lkjasdfjklbdskjasdfjkhfdshjksad/derp.html"; try target="_blank". ' 

लक्ष्य _blank जो है मैं क्या नहीं करना चाहता क्रोम में लिंक खुल जाएगा: इस का एक परिणाम यह है कि स्थान (एक लिंक पर क्लिक करने की तरह) से छेड़छाड़ का परिणाम है। क्या AngularJS 'रूटिंग ऐसे लॉक डाउन वातावरण में काम कर सकता है?

वे एक कोणीय अनुप्रयोग के an example देना डॉक्स, लेकिन स्पष्ट रूप मार्ग का उपयोग नहीं करता। <a class='walrus-link' ng-href='paystubs/{{walrus.id}}'>Walrus {{id}}!</a>

+0

बस एक मानसिक स्वास्थ्य की जांच: आप 1.0.x के बजाय कोणीय 1.1.0+ उपयोग कर रहे हैं

<a href="#about">About</a> 

$ routeProvider विन्यास इस प्रकार है? और क्या आप अपने $ रूट प्रदाता के लिए कोड पोस्ट कर सकते हैं जो आपको परेशानी दे रहा है? – eterps

+0

हां मैं नवीनतम पर हूँ (1.1.3) – Chris

+0

@eterps अपडेट किया गया! – Chris

उत्तर

8

के बजाय एक href का उपयोग कर, करने के लिए एनजी क्लिक करें और स्थानांतरित अपने नियंत्रक करने के लिए एक विधि कॉल का उपयोग करके देखें:

अद्यतन

यहाँ लिंक है, जिसे क्लिक, त्रुटि देता है $ स्थान का उपयोग कर उपयुक्त पृष्ठ। AngularJS site पर प्रलेखन देखें।

<a class='walrus-link' ng-click='getPaystub(walrus.id)'>Walrus {{id}}!</a> 

और अपने माता पिता के नियंत्रक में, आप ':

When should I use $location? Any time your application needs to react to a change in the current URL or if you want to change the current URL in the browser.

आपका कोड कुछ इस तरह दिख सकता है: दस्तावेज़ से निम्नलिखित उद्धरण एक संकेत है कि $ स्थान सेवा आप के लिए उपयुक्त हो सकता है देता है एक लाइन के लिए इसी तरह के साथ 'getPaystub' नामक एक गुंजाइश विधि की आवश्यकता होगी:

$scope.getPaystub = function(selectedWalrusId) { 
    $location.path('paystubs/'+$scope.walrus.id); 
} 

इस तरह कोणीय नियंत्रण रखता है और एक पृष्ठ ताज़ा पैदा नहीं होगी। यह उम्मीद है कि आप सीएसपी की सीमाओं के भीतर रखें। दुर्भाग्य से मैं एक पैकेज की गई ऐप्स में यह परीक्षण कर सकते हैं नहीं है, लेकिन मैं एक वेब अनुप्रयोग में ठीक उसी सम्मेलन का उपयोग किया है और यह सिर्फ dandy काम करता है।

0

मार्ग मेरी क्रोम अनुप्रयोग में मेरे लिए काम करता है जब $ routeProvider के एचटीएमएल 5 मोड (जो डिफ़ॉल्ट रूप से अक्षम है) का उपयोग नहीं, तो आप सिर्फ यूआरएल में एक हैश का उपयोग करना होगा।

तो मेरे लिंक कुछ ऐसा दिखाई:

$routeProvider.when('/about', {templateUrl:'about.html'}) 
संबंधित मुद्दे