我試圖弄清楚爲什麼我似乎無法調整簡單的角度下拉重置。重置Ionic中的角度下拉選項 - 將值從初始值更改後不會重置
當視圖加載時,按下「重置」按鈕,並根據控制器的功能指示,將任何值選擇到另一個值。這可以在頁面加載時正常工作,但是如果更改下拉列表中的值,那麼請單擊「重置」,它不會執行任何操作。它不會重置該功能中指定的下拉菜單,我無法弄清楚。
重現步驟:
- 頁面加載
- 點擊 「重置」 按鈕
- 下拉值更改爲 「日本」
- 值更改回爲 「英語」
- 點擊「重置「按鈕
- 沒有。它應該將該值改回英文,但不會。
我已經下降到最基本的例子用我Codepen極其鹼性離子例如水煮一切:
http://codepen.io/starshock/pen/EPdXpz
基本上,這裏是我的控制器代碼:
.controller('DropdownController', [ '$scope', '$state', function($scope, $state) {
$scope.navTitle = 'Dropdown Reset';
$scope.reset = function() {
$scope.selectedOption = $scope.languages[0];
}
$scope.languages = [
{ name: "English"},
{ name: "Japanese"}
];
$scope.selectedOption = $scope.languages[1];
}]);
這裏是我的模板:
<script id="entry.html" type="text/ng-template">
<ion-nav-bar animation="nav-title-slide-ios7"
type="bar-positive"
back-button-type="button-icon"
back-button-icon="ion-ios7-arrow-back">
</ion-nav-bar>
<ion-view title="{{navTitle}}" class="bubble-background">
<ion-content has-header="true" padding="true">
<div class="item item-input item-select" href="#">
<label>
<div class="input-label">
Select language
</div>
<select
data-ng-options="language.name for language in languages"
data-ng-model="selectedOption">
</select>
</label>
</div>
<button class="button button-positive" ng-click="reset()">Reset</button>
</ion-content>
</ion-view>
</script>
我一直在努力解決這個問題幾個月,我有一些使用類似代碼的實例。任何角度的主人有什麼想法? :D
在角度上,你必須小心地解釋原型繼承,並在'ng-model'中使用一個點。 (實質上是指對象屬性而不是基元類型)。在離子中,這是更加必要的,因爲許多離子特定指令('ion-view','ion-content'等)創建子範圍,其中的元素不一定與控制器中預期的原始屬性綁定。如果添加一些日誌語句,您會看到下拉列表綁定的'selectedOption'與控制器嘗試訪問的'$ scope.selectedOption'不同。 – Claies
基本上,由@potatopeelings提供的答案是正確的,轉換爲對象(在答案示例中爲「過濾器」)強制參考每次都是相同的。 – Claies