Aurelia 如何绑定app';使用承诺将视图模型转换为自定义元素?

Aurelia 如何绑定app';使用承诺将视图模型转换为自定义元素?,aurelia,Aurelia,我想将app.js视图模型中的值绑定到自定义元素,但当从承诺设置图像的值时,我似乎无法使bind正常工作 app.js: @inject(Api) export class App { constructor(api) { this.api = api; } . . . activate() { this.api.mockGet('gallery').then((images) => this.images = image

我想将app.js视图模型中的值绑定到自定义元素,但当从承诺设置
图像的值时,我似乎无法使
bind
正常工作

app.js

@inject(Api)
export class App {
    constructor(api) {
        this.api = api;
    }

    . . .

    activate() {
        this.api.mockGet('gallery').then((images) => this.images = images);
    }
}
import {containerless, bindable} from 'aurelia-framework';

@containerless
export class FeaturedImage {
    @bindable images = null;

    attached() {
        console.log(this.images);
    }
}
我的自定义元素,如
app.html
中引用的:

<featured-image images.bind="images"></featured-image>

此。图像
始终是
未定义的
。如果我将
images
设置为硬编码数组,它将按预期工作。我做错了什么?

尝试在
激活中返回承诺:

activate() {
   return this.api.mockGet('gallery')
      .then((images) => this.images = images);
}

这样可以确保您的视图在承诺完成时激活。但是,我认为即使使用no
return
,它也应该可以工作,因为数组中的任何更改都会传播到绑定它的所有视图。可能是另一个原因造成了这个问题。

非常有趣。这是可行的,但我想知道为什么。文件中有参考资料吗?是的,有。“如果您想在显示视图模型之前执行自定义逻辑,请实现此挂钩。您可以选择返回一个承诺,告诉路由器等待绑定并附加视图,直到您完成工作。”Derp-非常感谢您的帮助!我很感激。