2017-02-20 29 views
0

我没有足够的英语来形容它,但我认为你会从代码中理解它。 基本上我的问题是,ng-model =“”ng-options =“”在一起使用时不会提供表单数据。AngularJs:Ng-模型对象和单一模型Together

<select class="form-control" name="car_id" ng-model="car_id" ng-options="I.car_brand_code as I.car_brand_name for I in CarList" ng-change="GetState()" > 
            <option value="">Select Car</option> 
           </select> 

的品牌这些车

<div class="form-group"> 
            <label class="mtb10">Model Year</label> 
            <input type="text" name="modelYear" class="form-control" ng-model="data.modelYear" placeholder="Car Year..."> 
           </div> 

选择框中这是另一种形式的对象。 ng-model是不同的数据“数据”。我能得到它。我如何获得选择框中的值。

我需要获取“car_id”值。

+0

在你NG选项你有 “I.car_brand_code为I.car_brand_name ......”。这意味着您选择的任何值都将具有I.car_brand_code的值,并将其设置为在ng模型中指定的模型值。我需要看到更多的代码才能为您提供更好的答案。如果你能提供一个蹲点,我可以指出你的确切方向。 –

+0

或者如果你可以提供你的控制器代码,我可以帮助更多 –

+0

这是一个使用ng-model和ng-options的简单示例https://embed.plnkr.co/nUz7nABi3Bz4oSGH8FKH/ –

回答

0

尝试这种情况:

  • 论的下拉选项改变传递选定值输入到用作PARAM。
  • 使用array.filter()方法根据车号为所选车辆提取model year

DEMO

var myApp = angular.module('myApp',[]); 
 

 
myApp.controller('MyCtrl',function($scope) { 
 
    $scope.CarList = [ 
 
     { 
 
     "car_brand_code": 1, 
 
     "car_brand_name": "Maruti", 
 
     "model_year": 1990 
 
     }, 
 
     { 
 
     "car_brand_code": 2, 
 
     "car_brand_name": "Ford", 
 
     "model_year": 2005 
 
     } 
 
    ]; 
 
    
 
    $scope.GetState = function(carId) { 
 
     var selectedCar = $scope.CarList.filter(function(item) { 
 
     return item.car_brand_code == carId; 
 
     }); 
 
     $scope.data = { 
 
     "modelYear" : selectedCar[0].model_year 
 
     } 
 
    }; 
 
    
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="myApp" ng-controller="MyCtrl"> 
 
    <select class="form-control" name="car_id" ng-model="car_id" ng-options="I.car_brand_code as I.car_brand_name for I in CarList" ng-change="GetState(car_id)" > 
 
    <option value="">Select Car</option> 
 
    </select> 
 
    <div class="form-group"> 
 
    <label class="mtb10">Model Year</label> 
 
    <input type="text" name="modelYear" class="form-control" ng-model="data.modelYear" placeholder="Car Year..."> 
 
    </div> 
 
</div>