2016-03-30 8 views
5

क्या कोणीय 2 का उपयोग करके एन्कोड किए गए सभी सेगमेंट के साथ पूर्ण यूआरएल प्रतिनिधित्व वापस करने का कोई तरीका है?

कोणीय 1 दस्तावेज़ीकरण के अनुसार, $ location.absUrl(); इसे इस तरह वापस कर देगा।

https://docs.angularjs.org/api/ng/service/$location

तरीके absUrl(); यह विधि केवल गेटटर है।

वापसी सभी खंडों के साथ पूर्ण यूआरएल प्रतिनिधित्व नियम आरएफसी में निर्दिष्ट के अनुसार स्थान इंजेक्शन लगाने 3986.

// given url http://example.com/#/some/path?foo=bar&baz=xoxo 
var absUrl = $location.absUrl(); 
// => "http://example.com/#/some/path?foo=bar&baz=xoxo" 
+1

दुर्भाग्य से निकटतम मैं मिल सकता था इनकोडिंग और फिर कर रहे हैं: this.location.prepareExternalUrl (this.location.path()), जो सब कुछ excep देता है टी "http://example.com" –

+0

@RobLouie इस तरह के कोड का उपयोग कहीं भी उपयोग में किया गया है? मुझे आपके पास जो कुछ भी है, उसे करने की ज़रूरत है, लेकिन मुझे "स्थान" आयात करने के तरीके के साथ परेशानी हो रही है। –

+1

मुझे इस सटीक उपयोग के मामले का एक उदाहरण पता नहीं है, लेकिन कोणीय 2 दस्तावेज़ों में इंजेक्शन और स्थान का उपयोग करने का एक उदाहरण है: https://angular.io/docs/js/latest/api/router/Location -class.html। –

उत्तर

1
<script src="https://code.angularjs.org/2.0.0-beta.9/router.dev.js"></script> 


import {LocationStrategy} from '@angular/common' 
// pre RC.2 import {LocationStrategy} from 'angular2/router' 

constructor(private location:LocationStrategy) { 
    this.location.prepareExternalUrl('http://example.com/#/some/path?foo=bar&baz=xoxo'); 
} 

Plunker example

4
import {LocationStrategy} from '@angular/common'; 

constructor(private location:LocationStrategy) { 
    var fullPath = (<any>this.location)._platformLocation.location.href; 
} 
+0

यह मेरे लिए काम किया। लेकिन क्या यह पाने का एक 'उचित' तरीका है? किसी के लिए कास्ट थोड़ा हैक है – Arnaud

संबंधित मुद्दे