Aurelia 如何绑定app';使用承诺将视图模型转换为自定义元素?
我想将app.js视图模型中的值绑定到自定义元素,但当从承诺设置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
图像的值时,我似乎无法使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);
}
这样可以确保您的视图在承诺完成时激活。但是,我认为即使使用noreturn
,它也应该可以工作,因为数组中的任何更改都会传播到绑定它的所有视图。可能是另一个原因造成了这个问题。非常有趣。这是可行的,但我想知道为什么。文件中有参考资料吗?是的,有。“如果您想在显示视图模型之前执行自定义逻辑,请实现此挂钩。您可以选择返回一个承诺,告诉路由器等待绑定并附加视图,直到您完成工作。”Derp-非常感谢您的帮助!我很感激。