0

我想將用戶在另一個表單字段選擇選項中設置的ng-model的值傳遞給另一個ng-model作爲初始值同樣的形式。
在這個例子中,我想ng-init值myModel.fieldB的值爲myModel.fieldA.subfield,這是成功地評估span元素的值,但不是在myModel.fieldB的ng模型中,這意味着什麼都沒有發生ng-init="myModel.fieldB = myModel.fieldA.subfield"
但是當我通過字符串字面值,它的工作原理,例如ng-init="myModel.fieldB = 'some example'"angularjs使用來自另一個ng-model的值設置默認值ng-model

<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),所以要克服這一點,你可以選擇元素,如下上使用NG-變化:

<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.subfieldmyModel.fieldB價值?

就像這樣:

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

然後:

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

這裏的工作plunker