問題描述
我使用angular2.0.0-beta.7。當元件在像」/path?query=value1″這樣的路徑上載入時,它被重定向到」/path」。為什麼刪除了get引數?如何保留引數?
路由器出現錯誤。如果我有一條主路線
@routeconfig([
])和我的孩子路線一樣
@routeconfig([,])
我不能在todolistcomponent中獲取引數。
我可以得到矩陣
params("/my/path;param1=value1;param2=value2")
但我想要經典
query params("/my/path?param1=value1¶m2=value2")
最佳解決方案
角2.0最終解決方案。看來routeparams已被棄用。改為:
import from 『@angular/router『;
import from 『@angular/core『;
@component()
export class mycomponent implements oninit, ondestroy
ngoninit() );}}
如果要獲取查詢引數,請將this.activatedroute.params替換為this.activatedroute.queryparams
關於不支援的說明
@reto和@ codef0rmer非常正確地指出,根據官方文件,unsubscribe()內部的元件ondestroy()方法在這種情況下是不必要的。這已從我的**示例中刪除。 (請參閱我需要取消訂閱this教程的部分)
次佳解決方案
即使這個問題指定版本beta 7,這個問題也是谷歌搜尋結果的最佳搜尋結果。為此,這裡是最新的路由器的答案(目前在alpha.7)。
讀取引數的方式發生了巨大變化。首先你需要在你的建構函式中注入乙個叫做router的依賴關係,比如:
constructor(private router: router)
之後,我們可以在ngoninit方法上訂閱查詢引數(建構函式也可以,但ngoninit應該用於可測試性)
this.router
.routerstate
.queryparams
.subscribe(params => );
在本例中,我們從url讀取查詢引數,如example.com?id=41。
還有一些事情要注意:
訪問params的屬性,如params[『id『]總是返回乙個字串,可以通過+字首將其轉換為數字。
查詢引數被observable提取的原因是它允許re-using是相同的元件例項,而不是載入乙個新的例項。每次查詢引數更改時,都會導致我們訂閱的新事件,因此我們可以對相應的更改做出反應。
第三種解決方案
import from 『@angular/router『;
constructor(private activatedroute: activatedroute)
第四種方案
當乙個這樣的url這樣的
您可以通過以下**獲取param1:
import from 『@angular/core『;
import from 『@angular/router『;
@component()
export class abccomponent implements oninit
ngoninit()
}第五種方案
首先,我發現使用angular2的是具有查詢字串的url將是/path;query=value1
要使用您使用的元件訪問它是這樣的,但現在遵循**塊:
constructor(params: routeparams)
至於為什麼在載入元件時會被刪除,這不是預設行為。我特別檢查了乙個乾淨的測試專案,沒有被重定向或更改。它是預設路由還是其他特殊的路由?
請閱讀中angular2教程中的查詢字串和引數的路由
第六種方案
您可以使用activatedroute在url中傳遞查詢引數,如下所示:
}第七種方案
嗨,你可以使用urlsearchparams,你可以閱讀更多關於它的here。
進口:import from "@angular/http";
功能:getparam()
注意:它不受所有平台的支援,似乎在」experimental」狀態由角度文件
PHP MYSQL登陸頁面4
登陸頁面 echo 問題1 為什麼要denglu.php傳到這裡,因為php 獲取的也在這個頁面上啊,問題2 為什麼密碼只乙個,呵呵,這個登陸好嗎,你的使用者名稱 密碼已經儲存好了,登陸合適就可以了呀 為什麼這個頁面也要用session技術,因為使用者登入後沒退出下次登陸到這個頁面也是登陸後頁面哈,...
WEB自動化(4) 頁面跳轉
1.原視窗開啟新頁面 這種方式 windowhandle值不會有改變,可以直接繼續操作 2.新視窗開啟新頁面 記錄現在這個視窗的值,盡量在未開啟前記錄下來 string oldwin driver.getwindowhandle 獲取當前所有視窗的值,並使用新的值跳轉到新視窗去 setnewwin ...
Android登陸頁面,獲取驗證碼按鈕的實現
其實實現起來非常簡單,只需要學習乙個類就可以了。不羅嗦,直接上 class timecount extends countdowntimer override public void onfinish override public void ontick long millisuntilfinis...