我想在使用angular-ui-router時將不同的數據傳遞給每個狀態。雖然我們能夠傳遞數據,但在路線變化時它不會改變。例如參見下面的代碼:將數據傳遞給Angular UI路由器狀態變化時不會改變
.config(function($stateProvider, $urlRouterProvider) {
$stateProvider
// route to show main page with satisfied/unsatisfied
.state('main', {
url: '/main',
templateUrl: 'container.html',
controller: 'formController',
})
.state('main.happy', {
url: '/happy',
data: { happy: true },
templateUrl: 'happy.html',
})
.state('main.sad', {
url: '/sad',
data: { happy: false },
templateUrl: 'welcome.html'
})
// catch all route
$urlRouterProvider.otherwise('/main');
})
在上面的代碼時我轉到路徑/happy
,我可以看到正被拍攝的數據,但是當我轉到路徑/sad
數據不發生變化。儘管幸福的價值在路徑爲/sad
的情況下必須是假的,否則它仍然存在。只有當我刷新數據時纔會改變。我正在使用Angular來破壞整個目的。
在哪裏/你是如何訪問的'值data'? – TheSharpieOne 2014-10-02 17:01:44
當數據傳遞到後端時,我也傳遞了這些信息。在悲傷和快樂中,這兩條路都有一種形式。而這個表單提交時,這個值也被提交到後端。我將它添加到'formData'就像這個'$ scope.formData.happy = happy;'。所以這基本上是爲隱藏輸入中設置的默認值的目的服務。 – esafwan 2014-10-02 17:15:26
嘗試通過DI注入'$ state'並使用'$ scope.formData.happy = $ state.current.data.happy;' – TheSharpieOne 2014-10-02 17:29:53