[英]Getting issue while dynamically setting value in drop down list using Angular.js
I am getting an issue. 我遇到了一个问题。 I have two drop down list with same value. 我有两个具有相同值的下拉列表。 But when i am setting any value to first drop down list,the second one is taking that one. 但是,当我将任何值设置为第一个下拉列表时,第二个将采用该值。 I am explaining my code below. 我在下面解释我的代码。
<div class="col-md-6">
<div class="input-group bmargindiv1 col-md-12">
<span class="input-group-addon ndrftextwidth text-right" style="width:180px">Day Form :</span>
<select class="form-control" id="daysFrom" ng-model="daysFrom" ng-options="qua.name for qua in listOfDays track by qua.value ">
</select>
</div>
</div>
<div class="col-md-6">
<div class="input-group bmargindiv1 col-md-12">
<span class="input-group-addon ndrftextwidth text-right" style="width:180px">Day To :</span>
<select class="form-control" id="daysTo" ng-model="daysTo" ng-options="qu.name for qu in listOfDays track by qu.value ">
</select>
</div>
</div>
Here i have two drop down menu and suppose i am setting the value to first one like below. 在这里,我有两个下拉菜单,并假设我将值设置为第一个,如下所示。
$scope.daysFrom.value=2;
$scope.listOfDays=[{
name:'Select Day',
value:''
}]
$scope.daysFrom=$scope.listOfDays[0];
$scope.daysTo=$scope.listOfDays[0];
$http({
method:'GET',
url:"php/customerInfo.php?action=day",
headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
}).then(function successCallback(response){
angular.forEach(response.data,function(obj){
var data={'name':obj.day_name,'value':obj.day_id};
$scope.listOfDays.push(data);
})
},function errorCallback(response) {
})
The second one is also taking the same value which should not happen. 第二个也取相同的值,这是不应该发生的。 I need to set different value to both drop down list. 我需要为两个下拉列表设置不同的值。 Please help me. 请帮我。
Both $scope.daysFrom
and $scope.daysTo
are references to the same object $scope.listOfDays[0]
. $scope.daysFrom
和$scope.daysTo
都是对同一对象$scope.listOfDays[0]
引用。 Changes to any of this objects will be reflected in all of them. 对任何此对象的更改都将反映在所有这些对象中。
To fix this, you can use angular.copy
. 要解决此问题,您可以使用angular.copy
。 Here is an example: 这是一个例子:
$scope.daysFrom = angular.copy($scope.listOfDays[0]);
$scope.daysTo = angular.copy($scope.listOfDays[0]);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.