2016-08-31 10 views
7

के साथ वीएम से मार्ग पैरा और पता बार संशोधित करें मैं बिना रूट के पता बार में यूआरएल-पैरा अपडेट करना चाहता हूं। लेकिन मुझे यकीन नहीं है कि व्यू-मॉडल से ऑरेलिया-राउटर के साथ ऐसा कैसे करें।ऑरेलिया-राउटर: राउटर

मेरे मामले में मैं यूआरएल में आईडी भेजता हूं जो दृश्य-मॉडल की सक्रिय-विधि द्वारा उठाया जाता है।

मार्ग इस तरह दिखता है: http://localhost:3000/#/test/products?0=2599037842&1=2599080552

तब मैं यूआरएल की ID से दूर करने के लिए सक्षम होना चाहते हैं दृश्य-मॉडल सक्रिय किए बिना, यूआरएल परिणाम उदाहरण: http://localhost:3000/#/test/products?0=2599037842

उम्मीद है कि वहाँ है ऑरेलिया-राउटर

धन्यवाद में इसके लिए समर्थन! /माइक

उत्तर

16

हां, आप router.navigateToRoute() विधि के साथ ऐसा कर सकते हैं। navigateToRoute में अतिरिक्त पैरामीटर हैं। नेविगेशन कैसे किया जाता है संशोधित करने के लिए options (तीसरा) पैरामीटर का उपयोग करें।

उदाहरण:

import {inject} from 'aurelia-framework'; 
import {Router} from 'aurelia-router'; 

@inject(Router) 
export class Products { 
    constructor(router) { 
     this.router = router; 
    } 

    activate(params) { 
     // TODO: Check your params here and do navigate according to values 

     this.router.navigateToRoute(
      this.router.currentInstruction.config.name, // current route name 
      { '0': params['0'] }, // route parameters object 
      { trigger: false, replace: true } // options 
     ); 
    } 
} 

documentation hub से:

navigateToRoute(route: string, params?: any, options?: any): boolean

Navigates एक नए स्थान मार्ग और पैरामीटर निर्दिष्ट करने के लिए इसी के लिए।

पैरामीटर

  • route: string - जब नेविगेशन स्थान पैदा मार्ग के नाम का उपयोग करने के लिए।
  • params?: any - मार्ग पैटर्न को पॉप्युलेट करते समय उपयोग किए जाने वाले मार्ग पैरामीटर।
  • options?: any - नेविगेशन विकल्प।

options के साथ आपको यह नियंत्रित करने history is updated

  • trigger: false - रोकता रूटर नेविगेशन पाइपलाइन
  • replace: true शुरू किया जा करने के लिए -, बशर्ते मार्ग (पुनर्लेखन इतिहास) के साथ इतिहास में वर्तमान URL की जगह तो यह ब्राउज़र वापस कार्यक्षमता के साथ शुरू हो रहा नहीं की जाएगी
+0

बहुत अच्छा काम करता है - धन्यवाद! वर्तमान में रूट-नाम प्रोग्रामेटिक रूप से प्राप्त करने के लिए मैंने पाया कि एक सुधार 'product.-string' को "this.router.currentInstruction.config.name" से प्रतिस्थापित करना था। आप इस संशोधन को अपने उत्तर में जोड़ सकते हैं। :) – Mike

+0

ग्रेट। निश्चित रूप से, यदि आप वर्तमान मार्ग पर नेविगेट करने की आवश्यकता है तो यह काम करेगा। उत्तर संशोधित –