#angularjs #angular-ngmodel
#angularjs #angular-ngmodel
Вопрос:
Позвольте мне сначала сказать, что я знаю, что то, о чем я прошу, не является желаемым шаблоном, это просто то, что мне нужно в качестве временного исправления.
Я хочу иметь возможность привязывать один элемент ввода к двум «местам» в модели. например
Предположим, у меня есть ввод для ввода имени пользователя, и я хочу, чтобы он заполнял 3 поля в модели: user
, username
и user_name
.
Меня не волнует, что происходит в случаях столкновения … т.е. после назначения model.user='aaa'; and
model.username=’bbb» любое согласованное поведение нормально для меня.
Самое простое, что я могу придумать, — это привязка к user
пользователю, а затем просмотр пользователя и обновление имени пользователя и имя_пользователя.
может быть, я смогу создать директиву, которая будет копировать из ng-модели в ее собственные цели…
Есть ли какой-нибудь умный, простой и быстрый способ использовать ng-model для этого или любого другого трюка, который я могу / должен использовать?
ОБНОВЛЕНИЕ — Чтобы попытаться удовлетворить любопытство.
Мне это нужно для следующего сценария:
ПРИМЕЧАНИЕ: это то, что НЕ было разработано для angular, и я хочу перейти на angular, но не могу преобразовать все сразу.
Рассмотрим форму, которая имеет выбор для действия, а затем несколько входных данных для разных параметров разных действий, некоторые поля являются общими для более одного действия. Поля помечены классами, которые представляют действия, к которым они принадлежат, и jQuery используется для скрытия и отображения их на основе выбранного действия и для сбора значений из всех полей, которые принадлежат текущему действию, для их использования при необходимости выполнения действия.
теперь я хочу начать разделять действия на разные независимые формы и разные модели, мне показалось, что проще всего было бы, если бы на переходном этапе я смог установить один вход для обновления более одной модели.
Комментарии:
1. Я согласен, использовать $watch для этого сценария, вероятно, проще всего
2. Или используйте функцию на контроллере, чтобы быть onchange для ввода, и в функции вы присваиваете 3 переменные входному значению.
3. Мне интересно, почему вы хотите это сделать!
4. Мэтт, мне это нужно, потому что я хочу, чтобы один и тот же элемент управления формой участвовал в двух разных наборах данных. Я добавлю обновление с более подробным объяснением.
Ответ №1:
Я не совсем уверен, что понимаю, о чем вы спрашиваете. Ты это имеешь в виду?
<input ng-model="user" ng-change="user_name=username=user" type="text" /><br/>
User: {{user}}<br/>
Username: {{username}}<br/>
User_name: {{user_name}}
Комментарии:
1. Мне очень нравится ваше решение. Я думаю, что это именно то, что я искал (хотя это было довольно давно).