0

Я хотел бы передать значение ng-модели, которое пользователь устанавливает в другом поле формы, для выбора другой модели ng в качестве начального значения в такой же вид.
В этом примере я хочу, чтобы значение ng-init значения myModel.fieldB было значением myModel.fieldA.subfield, это успешно оценивает значение элемента span, но не в ng-модели для myModel.fieldB, что означает, что ничего не происходит в ng-init="myModel.fieldB = myModel.fieldA.subfield".
Однако, когда я прохожу буквенные значения строки, она работает, например ng-init="myModel.fieldB = 'some example'"angularjs установить значение по умолчанию ng-model, используя значение из другой ng-модели

<span class="form-group" ng-model="myModel.fieldB" ng-init="myModel.fieldB = myModel.fieldA.subfield">{{myModel.fieldA.subfield}</span> 

ответ

1

это потому, что, когда вы передаете буквальное значение это постоянная и не изменится, но когда ты передайте значение переменной, подобное этому ng-init="myModel.fieldB = myModel.fieldA.subfield" (myModel.fieldB), оно будет установлено только один раз во время создания является элементом с каким-либо значением внутри (myModel.fieldA.subfield), так, чтобы преодолеть это, вы можете использовать нг-изменения на выбор элемента, как показано ниже:

<select data-ng-model="myModel.fieldB" ng-change="myModel.fieldA.subfield = myModel.fieldB"> 
    <option value="option1">option1</option> 
    <option value="option1">option1</option> 
</select> 
<span class="form-group">{{myModel.fieldA.subfield}}</span> 
0

Использование ng-bind вместо ng-model.

<span class="form-group" ng-bind="myModel.fieldB" ng-init="myModel.fieldB = myModel.fieldA.subfield">{{myModel.fieldA.subfield}</span> 
+0

она до сих пор не появляется в моем ''

{{ myModel | json }}
но когда Я передаю строковое значение, появляется поле 'fieldB', и, очевидно, это строковая строка. – passion

+0

можете ли вы разместить больше кода? –

1

Почему вы не просто использовать ng-change директивы для выбора input и присвоить значение myModel.fieldA.subfield к myModel.fieldB?

Так же, как это:

ng-change="assignValue(myModel.fieldA.subfield)" 

Тогда:

$scope.assignValue = function(val) { 
    if (val) { 
     $scope.myModel.fieldB = val; 
    } 
    } 

Вот рабочий plunker