从Aurelia的子ViewModel访问父组件的ViewModel属性

时间:2017-07-22 17:31:20

标签: javascript typescript aurelia

我有两个组成部分:

<parent-component type="permanent">
    <div child-component></div>
</parent-component>
class ParentComponentCustomElement {
    @bindable public type: string = "permanent";
}

class ChildComponentCustomAttribute {
    public attached() {
        // how to get the instance of ParentComponentCustomElement here?
    }
}

我需要访问父级的type属性才能有条件地向子组件添加一些类。

我可以通过DOM遍历父树并查找这个特定的组件,但我不认为这是正确的方法。

2 个答案:

答案 0 :(得分:0)

您是否尝试为自定义属性实现bind()方法?尝试这样的事情:

bind(bindingContext, overrideContext) {
  console.log(overrideContext.parentOverrideContext.bindingContext.somePropertyFromParentViewModel);
}

来源:http://aurelia.io/hub.html#/doc/article/aurelia/framework/latest/creating-components/3

答案 1 :(得分:0)

原来我可以将父ViewModel注入子组件,如下所示:

SignedParts

请注意,这也很方便,因为它遍历父树,直到找到您实际查找的组件,因此子项可以包含在一个完全不同的组件中,这仍然有效。