[英]angularjs set default value ng-model using value from another ng-model
我想將用戶在另一個表單字段中設置的ng-model的值傳遞給另一個ng-model,將其作為相同表單的初始值。
在此示例中,我希望myModel.fieldB
的ng-init值為myModel.fieldA.subfield
,這是在span元素的值中成功評估的,但在myModel.fieldB
的ng-model中未成功評估,這意味着ng-init="myModel.fieldB = myModel.fieldA.subfield"
中沒有任何ng-init="myModel.fieldB = myModel.fieldA.subfield"
。
但是,當我傳遞字符串文字值時,它可以工作,例如ng-init="myModel.fieldB = 'some example'"
<span class="form-group" ng-model="myModel.fieldB" ng-init="myModel.fieldB = myModel.fieldA.subfield">{{myModel.fieldA.subfield}</span>
為什么不簡單地將ng-change
指令用於選擇input
並將myModel.fieldA.subfield
的值分配給myModel.fieldB
呢?
像這樣:
ng-change="assignValue(myModel.fieldA.subfield)"
然后:
$scope.assignValue = function(val) {
if (val) {
$scope.myModel.fieldB = val;
}
}
這是一個工作的家伙
這是因為當您傳遞文字值時,它是常量並且不會改變,但是當您傳遞變量值時,例如ng-init="myModel.fieldB = myModel.fieldA.subfield"
(myModel.fieldB),它將僅被設置一次在此元素具有任何內部值(myModel.fieldA.subfield) 的創建時 ,因此要克服此問題,可以對select元素使用ng-change,如下所示:
<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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.