Aurelia绑定在repeat.for不工作

时间:2016-04-10 17:39:37

标签: javascript aurelia aurelia-binding

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

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

并在视图模型中

事件summary.js

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

事件设置正确,但isFavorite始终未定义,无论我尝试什么(is-favorite.bind =“[some vm value]”)也返回undefined。谁能告诉我为什么?

由于

2 个答案:

答案 0 :(得分:2)

is-favorite.bind="true"应该有效。 is-favorite="true"也应该有效,尽管在这种情况下,isFavorite可绑定属性将被赋予字符串'true'。这是两个可运行的例子: https://gist.run/?id=7044b0c37b53bb66e833d461f41dae2f

答案 1 :(得分:1)

我从未使用bind()函数,但通常您的范围isFavorite就像this.isFavorite一样。你也可以在构造函数

中进行空值检查

这对我有用:

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>