0

在下面的示例中,我有像这样的自定义数据,data:{roles:[]}我需要data:{user:[]}为每个状态动态添加自定义数据属性

 .state('WorkArea', {
   parent: 'site',
   url: '/WorkArea',
   data: {
       roles: ['User', 'Dev']
   },
 })
4

2 回答 2

0
Define it in this way:

 .state('WorkArea', {
   parent: 'site',
   url: '/WorkArea',
   data: {
       roles: (function() {
                return ['User', 'Dev'];
              })()
   },
 })

在这种情况下,您可以使用 IIFE 将属性动态添加到数据属性。

在您的 app.run 中使用:

$rootScope.$on('$stateChangeStart', function(event, toState){ 
    var roles = toState.data.roles ;
    console.log(roles);
   // your custom logic here for that state
})
于 2015-03-07T13:31:54.357 回答
0

复制自:https ://github.com/angular-ui/ui-router/wiki 您可以将自定义数据附加到状态对象(我们建议使用数据属性以避免冲突)。

// Example shows an object-based state and a string-based state
var contacts = { 
name: 'contacts',
templateUrl: 'contacts.html',
data: {
    customData1: 5,
    customData2: "blue"
}  
}
$stateProvider
  .state(contacts)
  .state('contacts.list', {
    templateUrl: 'contacts.list.html',
  data: {
    customData1: 44,
    customData2: "red"
} 
  })

使用上面的示例状态,您可以像这样访问数据:

function Ctrl($state){
console.log($state.current.data.customData1) // outputs 5;
console.log($state.current.data.customData2) // outputs "blue";
}
于 2015-03-07T13:40:18.033 回答