AngularJS - привязка ввода к нескольким элементам модели

Позвольте мне сначала сказать, что я знаю, что то, что я прошу, не является желаемым шаблоном, это просто то, что мне нужно как временный патч.

Я хочу иметь возможность привязать один элемент ввода к двум «местам» в модели. например

Предположим, у меня есть вход для ввода имени пользователя, и я хочу, чтобы он заполнил 3 поля в модели: _1 _, _ 2_ и user_name.

Меня не волнует, что происходит в случае коллизии ... т.е. после назначения model.user='aaa'; andmodel.username = 'bbb' 'любое последовательное поведение в порядке. для меня.

Самая простая вещь, которую я могу придумать, - это привязка к user, а затем наблюдение за пользователем и обновление имени пользователя и имени пользователя.

возможно, я смогу создать директиву, которая будет копировать из ng-модели в свои собственные цели ...

Есть ли какой-нибудь умный простой и быстрый способ использовать ng-модель для этого или любого другого трюка, который я могу / должен использовать?

ОБНОВЛЕНИЕ - чтобы попытаться удовлетворить любопытных.

Мне это нужно для следующего сценария:

ПРИМЕЧАНИЕ. Это то, что НЕ было разработано для angular, и я хочу перейти на angular, но не могу преобразовать все сразу.

Рассмотрим форму, в которой есть выбор для действия. Затем несколько полей ввода для разных параметров различных действий, некоторые поля являются общими для более одного действия. Поля помечены классами, которые представляют действия, к которым они принадлежат, и JQuery используется для их скрытия и отображения на основе выбранного действия и для сбора значений из всех полей, принадлежащих текущему действию, для использования их, когда действие требует быть исполненным.

Теперь я хочу начать разделять действия на разные независимые формы и разные модели. Мне казалось, что проще всего было бы, если бы для переходной фазы я мог установить один вход для обновления более одной модели.


person epeleg    schedule 23.06.2014    source источник
comment
Я согласен, для этого сценария, вероятно, проще всего использовать $ watch.   -  person pixelbits    schedule 23.06.2014
comment
Или используйте функцию на контроллере для изменения входа, а в функции вы назначаете 3 переменные входному значению.   -  person Tacoman667    schedule 23.06.2014
comment
Мне интересно, почему вы хотите это сделать!   -  person Matt Way    schedule 23.06.2014
comment
Мэтт, мне это нужно, потому что я хочу, чтобы один и тот же элемент управления формой участвовал в двух разных коллекциях данных. Добавлю обновление с более подробным объяснением.   -  person epeleg    schedule 24.06.2014


Ответы (1)


Я не совсем уверен, что понимаю, о чем вы спрашиваете. Это то, что вы имеете в виду?

   <input ng-model="user" ng-change="user_name=username=user" type="text" /><br/>
   User: {{user}}<br/>
   Username: {{username}}<br/>
   User_name: {{user_name}}

http://plnkr.co/edit/tpl:8rFfZljYNl3z1A4LKSL2?p=preview

person tpie    schedule 16.04.2015
comment
Мне очень нравится ваше решение. Думаю, это именно то, что я искал (хотя это было довольно давно). - person epeleg; 20.04.2015