Почему bindable декоратор не соблюдается, когда пользовательский элемент отображается с помощью compose

Можно передать атрибуты пользовательскому элементу Aurelia с помощью @bindable декоратор:

export class ItemCustomElement {
    @bindable model: Item;
}

<item model.bind="model"></item>

Почему пользовательские элементы отображаются <compose> обрабатываются по-разному, в соответствии с activate способ передачи данных? @bindable не соблюдается

export class ItemCustomElement {
    @bindable model: Item;

    activate(model: Item): void {
        this.model = model;
    }
}

<compose view-model="./item" model.bind="model"></compose>

С точки зрения пользовательского элемента, в настоящее время он должен знать, как он будет использоваться, с <compose> или нет. Я думаю, что пользовательский элемент должен быть изолирован от этого внешнего решения. Можем ли мы сделать @bindable работать в обоих случаях?

1 ответ

Пользовательские элементы отображаются <compose> иметь доступ к своим внешним областям. Таким образом, нет необходимости использовать @bindable, Посмотрите этот пример https://gist.run/?id=fae6b9c9c2e3a608a60522392329bae1

Другие вопросы по тегам