Aurelia反复绑定.因为不起作用

Aurelia binding in repeat.for not working

本文关键字:因为 不起作用 绑定 Aurelia      更新时间:2024-04-02

我正试图在repeat.for中的aurelia组件上设置一个可绑定的值,但它似乎没有任何影响。

<event-summary repeat.for="event of events" event.bind="event" is-favorite="true"></event-summary>

在视图模型中

事件摘要.js

@bindable('isFavorite')
@bindable('event')
export class EventSummary {
    bind(bindingContext) {
        if(bindingContext.isFavorite == null) {
            this.isFavorite = false;
        }
    }
}

事件设置正确,但无论我尝试什么,isFavorite总是未定义的(isFavorite.bind="[some-vm-value]")也返回未定义的。有人能告诉我为什么吗?

感谢

is-favorite.bind="true"应该可以工作。is-favorite="true"也应该工作,尽管在这种情况下,isFavorite可绑定属性将被分配字符串'true'。以下是两者的可运行示例:https://gist.run/?id=7044b0c37b53bb66e833d461f41dae2f

我从未使用过bind()函数,但通常情况下,您的作用域中有isFavorite,如this.isFavorite。你也可以在构造函数中进行null检查

这对我很有效:

import {bindable} from 'aurelia-framework';
export class Testelement {
    @bindable item
    @bindable isFavorite
    constructor() {
        console.log(this.isFavorite);
        console.log(this.item);
    }
    bind(bindingContext, overrideContext) {
        console.log("bc ", bindingContext); //no item or isFavorite defined here
        console.log("oc ", overrideContext);//no item or isFavorite defined here
    }
}

<testelement item.bind="element" repeat.for="element of data" is-favorite="true"></testelement>