0
我傳遞使用$state->data
的信息。例如:如何在視圖顯示給用戶之前從angularjs中的自定義指令中獲取信息?
angular
.module('myapp', [...])
.config(function ($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('/account');
$stateProvider
.state('account', {
abstract: true,
url: '/account',
templateUrl: 'index.html'
})
.state('menu', {
abstract: true,
url: '/menu',
templateUrl: 'views/nav/menu.html'
})
.state('menu.main', {
url: '/main',
data: {
role: ['user', 'merchant'],
mode: 'online'
},
views: {
'menuContent': {
templateUrl: 'views/dash/dash.main.html'
}
}
})
.
.
.
;
})
和驗證通過$stateChangeStart
$rootScope.$on('$stateChangeStart', function (event, toState, toParams, fromState, fromParams) {
console.log(toState);
console.log(toState.data);
});
各的看法,但我認爲信息(如角色和模式)必須從視圖中取而不是從$state->data
。我想是這樣的:
views/dash/dash.main.html
<ion-view title="Dashboard" hide-back-button="true" myapp-role="user,merchant" myapp-mode="online" myapp-security="true">
<ion-content has-header="true" padding="false">
</ion-content>
</ion-view>
而且能夠在view
之前得到myapp-role, myapp-mode, myapp-security
值顯示給用戶。 我該如何做到這一點?還有一個問題,這是一個好方法嗎?
我會使用UI路由器解析功能。指定您希望在顯示視圖之前解析用戶。這樣,角色在呈現視圖之前可用。請參閱http://www.jvandemo.com/how-to-resolve-angularjs-resources-with-ui-router/ – grimurd 2014-09-25 02:13:11
我可以在'resolve'中獲得自定義指令值嗎? – fiberOptics 2014-09-25 03:09:44
如果您從指令中檢索值,則不。該指令在視圖呈現之前不會被初始化。但是,如果可能的話,我寧願把你需要的數據從指令中解析出來,這樣指令和視圖/控制器都可以立即使用它。 – grimurd 2014-09-25 21:50:09