Aurelia переплет для пользовательских элементов
В настоящее время я сталкиваюсь со следующей проблемой, используя 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>
и тогда у меня есть custom-элемент:
CustomElement userAddress JS
@customElement('userAddress')
@autoinject
export class userAddress{
@bindable user: User;
}
CustomElement userAddress template:
<template>
<input type="text" id="street-name" value.bind="user.address.streetname" />
</template>
Теперь я хочу, чтобы при нажатии кнопки "Отправить" информация из пользовательского элемента "user-address" была перенесена в модель представления макета, чтобы я мог использовать ее в "registerUser()".
Кто-нибудь может сказать мне, как я могу заставить это работать? В настоящее время я получаю только "неопределенный" в родительской модели представления.
2 ответа
Режим привязки по умолчанию для этого<user-adress user.bind="user"></user>
будет односторонним..
Вы должны изменить это на<user-adress user.two-way="user"></user>
что должно сделать
чтобы поддерживать связь с сообществом aurelia, присоединяйтесь к форумам aurelia https://discourse.aurelia.io/
и gitter канал https://gitter.im/aurelia/Discuss
Вам нужно использовать двустороннюю привязку. Ваша текущая ситуация, используя user.bind
привязка выполняется только в одностороннем порядке. Это означает, что если вы редактируете привязку в дочернем элементе, она не будет обновляться в родительском элементе.
Если вы связываете значение следующим образом:
<user-address user.two-way="user"></user>
Любые изменения, которые вы вносите в user
в user-address
элемент также обновит user
в родительской viewmodel.