如何禁用角度ui路由器状态的数据继承

时间:2014-11-28 06:44:12

标签: angularjs angular-ui-router

如何禁用角度UI-router中的子状态继承其父状态数据?

例如,我有一个父和子状态如下:

$stateProvider.state('parent', {
      data:{
         customData1:  "Hello",
      }
   })
   .state('parent.child', {
      data:{

      }
   });

此处,子状态(parent.child)继承其父级的数据(customData1)。 如何禁用继承父数据?

1 个答案:

答案 0 :(得分:0)

虽然我不确定你为什么要那样做...你可以隐藏父实现:

Inherited Custom Data

  

子状态将从父状态继承数据属性,它们可以覆盖它们。

$stateProvider.state('parent', {
      data:{
         customData1:  "Hello",
         customData2:  "World!"
      }
   })
   .state('parent.child', {
      data:{
         // customData1 inherited from 'parent'
         // but we'll overwrite customData2
         customData2:  "UI-Router!"
      }
   });

$rootScope.$on('$stateChangeStart', function(event, toState){ 
    var greeting = toState.data.customData1 + " " + toState.data.customData2;
    console.log(greeting);

    // Would print "Hello World!" when 'parent' is activated
    // Would print "Hello UI-Router!" when 'parent.child' is activated
})