2017-08-08 78 views
-1

我們通過ng-options以一種形式進行多個下拉菜單,但是如果我們更改一個下拉菜單,則所選值也會與另一個下拉菜單匹配。通過ng-option不起作用的多個下拉菜單

<div ng-app="SelectApp"> 
    <div ng-controller="selectController"> 

    <select name="category-group" id="categoryGroup" class="form-control" ng-model="itemSelected" ng-change="onCategoryChange(itemSelected)" 
    ng-options="category.name group by category.group for category in categories"> 
    </select> 

    <select name="category-group" id="categoryGroup2" class="form-control" ng-model="itemSelected" ng-change="onCategoryChange(itemSelected)" 
    ng-options="category.name group by category.group for category in categories"> 
    </select> 

</div> 

JS代碼:

'use strict'; 
var app = angular.module('SelectApp', [ ]); 
app.controller('selectController', ['$scope', '$window', function ($scope, $window) { 
    $scope.categories = [  
     { id: 0, name: "Select a category..."}, 
     { id: 1, name: "Cars", group : "- Vehicles -" }, 
     { id: 2, name: "Commercial vehicles", disabled: false,group : "- Vehicles -" }, 
     { id: 3, name: "Motorcycles", disabled: false, group : "- Vehicles -" }, 
     { id: 4, name: "Car & Motorcycle Equipment", disabled: false, 
     group : "- Vehicles -" }, 
     { id: 5, name: "Boats", disabled: false, group : "- Vehicles -" }, 
     { id: 6, name: "Other Vehicles", disabled: false, group : "- Vehicles -" }, 
     { id: 7, name: "Appliances", disabled: false , group : "- House and Children -" }, 
     { id: 8, name: "Inside", disabled: false,group : "- House and Children -" }, 
     { id: 9, name: "Games and Clothing", disabled: false,group : "- House and Children -" }, 
     { id: 10, name: "Garden", disabled: false,group : "- House and Children -" } 
    ]; 

    $scope.itemSelected = $scope.categories[0]; 

    $scope.onCategoryChange = function() { 
     $window.alert("Selected Value: " + $scope.itemSelected.id + "\nSelected Text: " + $scope.itemSelected.name); 

    }; 
}]);  
+0

您使用的是相同的NG-模型有兩個下拉菜單,所以角度更新值到它的模型。 (ng-model =「itemSelected」) –

+0

對於每個選擇框使用單獨的模型 –

+0

感謝您的快速響應,但這些下拉列表來自某個後端系統的ng-repeat。我想要在不同的下拉菜單中設置不同的值, – ASHU

回答

1

我改變你的代碼如下所示。希望這會起作用。

app.js

$scope.itemSelected = $scope.categories[0]; 
$scope.itemSelected1 = $scope.categories[0]; 
$scope.onCategoryChange = function (item,index) { 

    $window.alert("Selected Value: " + item.id + "\nSelected Text: " + item.name); 

}; 
}]); 

視圖

<div ng-app="SelectApp"> 
<div ng-controller="selectController"> 

<select name="category-group" id="categoryGroup" class="form-control" ng-model="itemSelected"           ng-change="onCategoryChange(itemSelected)" 
    ng-options="category.name group by category.group for category in categories"> 

</select> 

<select name="category-group" id="categoryGroup" class="form-control" ng-model="itemSelected1"           ng-change="onCategoryChange(itemSelected1)" 
    ng-options="category.name group by category.group for category in categories"> 

</select> 

</div> 

+0

嗨srin,感謝您的幫助,但仍然我的問題尚未解決我更新我的提琴手,當我從第一個下拉列表中選擇我正在xyz綁定的值正確顯示,但是當我從第二個下拉列表中選擇其更新第一個和第二兩個具有相同的價值,我希望它的不同價值選擇個別 http://jsfiddle.net/sensex00007/mLrynxh2/205/ – ASHU

+0

更新檢查你的小提琴 –

+0

對不起,其不更新可以請你che它 – ASHU