我的儀表板中有10個類似的框,每個框都顯示特定設備的不同值。當用戶點擊每個設備時,我必須將它們引導到顯示關於該設備的更多信息的新頁面。如何將params從以前的狀態傳遞到角度上的新狀態?
所有設備的第二頁的佈局是相同的。我只需要更新$範圍。
什麼是乾淨的角度的方式來實現這一點,最好不向網址添加查詢?
我正在使用$ stateProvider,並試圖使它與onEnter()一起工作,但還不能。
我的儀表板中有10個類似的框,每個框都顯示特定設備的不同值。當用戶點擊每個設備時,我必須將它們引導到顯示關於該設備的更多信息的新頁面。如何將params從以前的狀態傳遞到角度上的新狀態?
所有設備的第二頁的佈局是相同的。我只需要更新$範圍。
什麼是乾淨的角度的方式來實現這一點,最好不向網址添加查詢?
我正在使用$ stateProvider,並試圖使它與onEnter()一起工作,但還不能。
$stateParams
應該做的伎倆。要使用它,您需要在路由時指定參數。例如:
(function(){
'use strict';
angular
.module('app')
.config(ApplicationConfig);
//set dependencies for ApplicationConfig
ApplicationConfig.$inject = ['$stateProvider'];
function ApplicationConfig($stateProvider){
//Define route states
$stateProvider
.state('main', {
abstract: true,
url: '/main',
templateUrl: 'pages/main/main.html',
controller: 'MainCtrl',
controllerAs: 'main',
cache: true,
params: {
user: null
}
});
}
然後使用$state.go('stateName', { param: param })
,例如(以下前面的例子):
//Inside your original controller
function goToMainPage(param) {
$state.go('main', { user: param });
}
最後,你做一個$stateParams.param
訪問參數目的地控制器內,或在先前示例的情況下,$stateParams.user
。
感謝您的解決方案。你會補充說,如果新頁面需要用戶進行身份驗證? – DragonKnight
如果你想要一種測試身份驗證的方法,我建議你搜索Stack Overflow並詢問它是否找不到解決方案。有很多方法,它高度依賴於你使用的auth方法。 現在,如果您詢問此方法的安全性如何 - 您仍然可以監視事件並使用'preventDefault'來停止加載視圖。 不幸的是,我對安全知之甚少,無法獲得更多幫助。 –
感謝您的信息。 – DragonKnight
請添加涵蓋您所描述內容和/或創建Plunker示例的代碼。 – eminlala