简体   繁体   English

使用Angular.js在下拉列表中动态设置值时出现问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM