Как я могу получить значение на основе имени с помощью нескольких ng-моделей с уникальным именем?

#javascript #angularjs

#javascript #angularjs

Вопрос:

Как я могу получить значение на основе имени? ng-модель та же, но имя уникально.

 <input type="text" name="name1" ng-model="field.value">
<input type="text" name="name2" ng-model="field.value">
  

Я пытался со следующим кодом, но безуспешно! Я хочу показывать 'some value' только в имени, содержащем name1.

 if(document.getElementsByName('name1')){
  $scope.field.value = 'some value';
}
  

Комментарии:

1. я не могу понять, что вы хотите сделать, не могли бы вы подробнее объяснить свою проблему?

2. Что означает «показывать значение показа» ? Не совсем понятно, чего вы пытаетесь достичь. Подход определенно неправильный, вы не должны запрашивать dom и должны сохранять состояние в модели контроллера

3. ng-model Директива создает двустороннюю привязку между входными данными и переменной области видимости. Если переменная области видимости одинакова, любые изменения в переменной области видимости обновят оба входных параметра. Любые изменения в любом из входных данных обновят модель и автоматически обновят другие входные данные. Чего вы пытаетесь здесь достичь?

Ответ №1:

Привет, просто предложение, пожалуйста, будьте более наглядны при задании вопроса. Это может помочь другим понять вопрос.

Проблема: Насколько я знаю, вы хотите отобразить измененное значение в текстовом поле ввода с именем «name1». Но в вашем случае общая переменная (field.value) связана с обоими текстовыми полями ввода, поэтому любое изменение в field.value повлияет на оба.

Решение:
Есть два случая:
1. Вы даже не хотите показывать текстовое поле ввода.
2. Вы не хотите изменять значение текстового поля ввода.

Решение для случая-1 Вы можете взять одну логическую переменную и использовать с ней директиву ng-if или ng-show.

 <input type="text" name="name1" ng-model="field.value">
<input type="text" ng-if="showfFlag" name="name1" ng-model="field.value">
  

Решение для случая 2
Вы можете взять одну логическую переменную и использовать ее для изменения модального значения для вашего входного текста.

 <input type="text" name="name1" ng-model="field.value">
   <!-- showFlag === true? field.value: " "" 
   If flag is true then show value else return 
   old value of empty string depends on you requirement. 
   You can change that function in your controller.
   -->
<input type="text" name="name2" ng-model="showFlag === true? field.value: " "">