Typescript 自定义元素的Aurelia绑定

Typescript 自定义元素的Aurelia绑定,typescript,aurelia,Typescript,Aurelia,目前,我在使用aurelia时面临以下挑战: 遵循我的用户模型: export class User{ @bindable name: string; @bindable address: Address; 我有一个布局视图模型,包括一个表单: 父用户注册JS export class UserRegistration{ @bindable user: User public registerUser(){ let address = this

目前,我在使用aurelia时面临以下挑战:

遵循我的用户模型

export class User{
    @bindable name: string;
    @bindable address: Address;
我有一个布局视图模型,包括一个表单:

父用户注册JS

export class UserRegistration{
    @bindable user: User

    public registerUser(){
        let address = this.user.address;
        //register user and so on ...
    }
}
@customElement('userAddress')
@autoinject
export class userAddress{
      @bindable user: User;
}
父用户注册模板

<template>
    <require from="user-address"></require>    

    <form id="user-registration-form" submit.delegate="registerUser()>
        <user-adress user.bind="user"></user>
    </form>
</template>
CustomElement用户地址模板:

<template>
    <input type="text" id="street-name" value.bind="user.address.streetname" />
</template>

现在我希望,单击submit,来自自定义元素“user address”的信息被接收到布局视图模型中,以便我可以在“registerUser()”中使用它


谁能告诉我,我怎样才能让它工作?目前,我在父视图模型中只得到一个“未定义的”。

您需要使用双向绑定。您当前的情况,使用
user.bind
仅单向绑定,这意味着如果您在子级中编辑绑定,它将不会在父级中更新

如果像这样绑定值:

<user-address user.two-way="user"></user>


用户地址
元素中的
用户
所做的任何更改也将更新父视图模型中的
用户。

您需要使用双向绑定。您当前的情况,使用
user.bind
仅单向绑定,这意味着如果您在子级中编辑绑定,它将不会在父级中更新

如果像这样绑定值:

<user-address user.two-way="user"></user>


用户地址
元素中的
用户
所做的任何更改也将更新父视图模型中的
用户

此项的默认绑定模式

将是单向的

您必须将其更改为

这样就可以了

要与aurelia社区保持联系,请加入aurelia论坛

而gitter channel则是此应用程序的默认绑定模式

将是单向的

您必须将其更改为

这样就可以了

要与aurelia社区保持联系,请加入aurelia论坛

和gitter频道

您的代码中有一些输入错误,例如
(应该是
)。您的代码中是否也包含这些参数,或者您是否将它们复制到了错误的位置?仅供参考,您可以在bindable上设置默认绑定模式(只需将参数传递给decorator)。这使您能够保持Aurelia的精神,使用
绑定的预期约定,而不是显式的。代码中有一些打字错误,例如
(应该是
)。您的代码中是否也包含这些参数,或者您是否将它们复制到了错误的位置?仅供参考,您可以在bindable上设置默认绑定模式(只需将参数传递给decorator)。这使您能够保持Aurelia的精神,并使用
bind的预期约定,而不是显式的。良好的计时(:仅关闭32秒;-)良好的计时(:仅关闭32秒;-)