這裏是我認爲的代碼...角度變化
<label for="restaurant-type-select" class="control-label">
Type
</label>
<select class="form-control" id="restaurant-type-select" ng-model="restaurant.type" ng-change="restaurantTypeChanged()">
<option value="Franchise">Franchise</option>
<option value="Corporate">Corporate</option>
<option value="Individual">Individual</option>
</select>
<div ng-if="restaurant.type == 'Franchise' || restaurant.type == 'Corporate'">
<label for="restaurant-group-select" class="control-label">
Restaurant Group
</label>
<select class="form-control" id="restaurant-group-select" ng-model="restaurant.restaurant_group" ng-options="restaurant_group.name for restaurant_group in restaurant_groups.items track by restaurant_group.id">
</select>
</div>
下面是相關的控制器代碼...
$scope.restaurantTypeChanged = function() {
if ($scope.restaurant.type == "Individual") {
$scope.restaurant.restaurant_group = {};
}
console.log($scope.restaurant.restaurant_group);
};
這段代碼的目的非常簡單。如果restaurant.type爲「Individual」,則不應設置restaurant_group。否則,restaurant_group應該是可見和可封閉的。問題是restaurant_group似乎沒有保持設置。
例如...我的啓動條件爲restaurant.type = 「公司」 和restaurant.restaurant_group = { 「ID」:1, 「名」: 「東西」}。兩個選擇框都正確顯示。當我選擇「個人」爲餐廳類型,餐飲集團選擇框消失,在控制檯日誌...
{}
這是我所期望的。但是,當我將餐廳類型更改回「公司」時,餐館組選擇框會重新出現,並且已選擇「某些」選項。控制檯登錄立即顯示...
{ 「ID」:1, 「名」: 「東西」}
這不是我所期望的。我希望餐廳組保持空的對象,直到我再次用餐廳組選擇框設置它。我明顯錯過了這裏正在發生的事情。
你能爲此創建一個plnkr嗎? – Fahad