"&安培;"从命名视图

时间:2017-05-21 20:25:37

标签: angularjs angular-ui-router

我有一个1.5角应用程序,它使用ui-router 1.0的组件路由。

.config(/*@ngInject*/($stateProvider) => {
$stateProvider
.state('efd.kbe', {
    url: '',
    abstract: true,
    template: '<div ui-view="kbe"></div><div ui-view="ala"></div>'
})
.state('efd.kbe.show', {
     url: '/kbe/{kbeId}',
     views:{
         'kbe@efd.kbe':{
            component: 'showkbe'
         },
         'ala@efd.kbe':{
            component: alaComponent.name
         }
     }
 })
.state('efd.kbe.create', {
    url: '/kbe/create',
    views: {
        'kbe@efd.kbe':{
            component: 'createeditkbe'
        },
        'ala@efd.kbe':{ }
    }
})
.state('efd.kbe.edit', {
    url: '/kbe/{kbeId}/edit',
    views: {
        'kbe@efd.kbe':{
            component: 'createeditkbe'
        },
        'ala@efd.kbe' :{
            component: alaComponent.name
        }
    }
});
})

.component('kbe', {
    template: defaultTemplate,
    abstract: true
})
.component('showkbe', {
    template: showTemplate,
    controller: controller,
    bindings: {
        onActiveStateChange: '&',
        kbeActiveState: '<'
    }
})
.component('createeditkbe', {
    template: createEditTemplate,
    controller: controller
})

我想在组件中调用&#34; showkbe&#34;方法&#34; onActiveStateChange&#34;应该在父组件&#34; kbe&#34;中运行,但我找不到让它运行的方法。我学过  https://ui-router.github.io/guide/ng1/route-to-component#routed-parentchild-component-communication以及相关的plunkr:https://plnkr.co/edit/6Vk1dN 我的代码和这个例子之间的区别似乎是命名视图。这可能是ui-router和组件绑定不兼容的原因吗?

编辑: 我试图将on-active-state-change="$ctrl.foo()"添加到状态efd.kbe以及efd模板中的ui-view元素,但我无法在子组件中获取调用&#34; showkbe&#34;触发任何父母的任何事情。

0 个答案:

没有答案