У меня есть 2 пользовательских элемента управления parent-control
и child-control
. Мне нужен ребенок для выполнения функций от имени родителя. и требование состоит в том, чтобы ребенок использовался в пределах родительских границ.создание новой привязкиКонтекст для использования детьми модели для просмотра
пример использования
...<content-around> <!-- this is 'outerContext' bindingContext -->
<parent-control shared.bind="outerContext.something">
<div>
<child-control property="nameOfMemberOfShared"></child-control>
</div>
<div>
<span>some text here</span>
<child-control property="anotherNameOfMemberOfShared"></child-control>
</div>
</parent-control>
</content-around>...
родитель-control.html
<template>
<slot></slot>
</template>
родитель-control.ts (предполагая, что все импорта)
export class ParentControlCustomElement {
@bindable shared: any;
bind(bindingContext, overrideContext) {
//here want to make sure elements rendered inside slot
//are able to access 'shared'
}
}
ребенка control.html
<template>
<!-- this is for simplicity more advanced stuff needed here -->
<h1>${sharedObject[property]}</h1>
</template>
ребенка-control.ts (предполагая, что все импорт)
export class ChildControlCustomElement {
@bindable property: string;
sharedObject: any;
bind(bindingContext, overrideContext) {
this.sharedObject = bindingContext.shared;
// the problem is HERE!
// instead of getting a binding context pointing
// to parent-control view model I get binding context
// pointing to 'outerContext'
}
}
Как я могу убедиться, что с внутренних компонентов parent-control
получат контекст привязки, указывающий на модель представления parent-control
?
Интересно, позвольте мне попробовать –
Отлично! это работает так, как ожидалось! Большое спасибо. –