![](/img/trans.png)
[英]How to use ng-init to select a default value in a select box when the ng-model and the ng-options are referencing different objects
[英]ng-init overriding ng-model in the select options (plunker added)
https://plnkr.co/edit/RgGzgGkBPaxvKHNE688K?p=preview
在上面的示例中,我正在硬編碼選擇選項並通過ng-init屬性初始化為顏色“紅色”。 我想在頁面加載時顯示默認的顏色“紅色”。
<select ng-model="mycolor" ng-init="mycolor = 'red'">
<option>red</option>
<option>green</option>
</select>
在控制器中,我將“ mycolor”更新為“綠色”,但由於ng-init屬性,選擇框仍顯示“紅色”。 (我這樣做是因為將從后端檢索mycolor)
app.controller('MainCtrl', function($scope) {
$scope.mycolor = 'green';
});
如何解決呢? 簡而言之,我想實現的是,我想在頁面加載時的選擇框中顯示紅色默認值,如果后端的mycolor發生任何更改,則應將其覆蓋為新顏色。 就我而言,它是綠色的。
你可以做
<select ng-model="mycolor" ng-init="mycolor = mycolor || 'red'">
因此,如果有值,則將mycolor
模型設置為自身,否則默認為'red'
。
見朋克 。 我有5秒鍾的超時時間,將顏色更改為藍色,以模擬后端更改為例。
問題是ngInit是一個指令,角壽命基本上是
因此,您不能根據指令“覆蓋”控制器中的某些內容(除非其專門用於編譯)。
將觀察者置於需要更改的地方,而觀察者回調更改為'mycolor'
似乎更合乎邏輯
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.