自定义元素的 Aurelia 绑定
Aurelia binding for custom elements
目前我使用 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 ...
}
}
家长用户注册模板
<template>
<require from="user-address"></require>
<form id="user-registration-form" submit.delegate="registerUser()>
<user-adress user.bind="user"></user>
</form>
</template>
然后我有一个自定义元素:
CustomElement 用户地址 JS
@customElement('userAddress')
@autoinject
export class userAddress{
@bindable user: User;
}
CustomElement 用户地址模板:
<template>
<input type="text" id="street-name" value.bind="user.address.streetname" />
</template>
现在我想要点击提交,来自自定义元素 "user-address" 的信息被接管到布局视图模型中,以便我可以在 "registerUser()".[=15 中使用它=]
谁能告诉我,我怎样才能让它工作?目前,我在父视图模型中只得到一个 "undefined"。
您需要使用 two-way 绑定。您目前的情况,使用 user.bind
仅绑定 one-way,这意味着如果您编辑子项中的绑定,它将不会在父项中更新。
如果像这样绑定值:
<user-address user.two-way="user"></user>
您对 user-address
元素中的 user
所做的任何更改也会更新父视图模型中的 user
。
这个的默认绑定模式
<user-adress user.bind="user"></user>
将是 one-way..
你必须把它改成
<user-adress user.two-way="user"></user>
应该这样做
要与 aurelia 社区保持联系,请加入 aurelia 论坛 https://discourse.aurelia.io/
和 gitter 频道 https://gitter.im/aurelia/Discuss
目前我使用 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 ...
}
}
家长用户注册模板
<template>
<require from="user-address"></require>
<form id="user-registration-form" submit.delegate="registerUser()>
<user-adress user.bind="user"></user>
</form>
</template>
然后我有一个自定义元素:
CustomElement 用户地址 JS
@customElement('userAddress')
@autoinject
export class userAddress{
@bindable user: User;
}
CustomElement 用户地址模板:
<template>
<input type="text" id="street-name" value.bind="user.address.streetname" />
</template>
现在我想要点击提交,来自自定义元素 "user-address" 的信息被接管到布局视图模型中,以便我可以在 "registerUser()".[=15 中使用它=]
谁能告诉我,我怎样才能让它工作?目前,我在父视图模型中只得到一个 "undefined"。
您需要使用 two-way 绑定。您目前的情况,使用 user.bind
仅绑定 one-way,这意味着如果您编辑子项中的绑定,它将不会在父项中更新。
如果像这样绑定值:
<user-address user.two-way="user"></user>
您对 user-address
元素中的 user
所做的任何更改也会更新父视图模型中的 user
。
这个的默认绑定模式
<user-adress user.bind="user"></user>
将是 one-way..
你必须把它改成
<user-adress user.two-way="user"></user>
应该这样做
要与 aurelia 社区保持联系,请加入 aurelia 论坛 https://discourse.aurelia.io/
和 gitter 频道 https://gitter.im/aurelia/Discuss