0

我有一个看起来像这样的 json

[{"partner_id":"8","partner_name":"Company1","partner_location":["Place1","Place2","Place3"],"partner_user":["User1","User2","User3"]},{"partner_id":"9","partner_name":"Company2","partner_location":["Place4","Place5"],"partner_user":["User4","User5"]}]

现在我想做这样的事情。我有 2 个下拉列表,我希望第一个下拉列表中填充我的 2 个列表中的 partner_name,所以它必须看起来像这样

<select>
    <option value="8">Company1</option>
    <option value="9">Company2</option>
</select>

但我希望它已经被我在里面设置的值选中service_id。我知道你可以这样做

<select ng-options="partner for partner in jsonPartners" ng-model="service_id"></select>

但是当我这样做时,我在我的选择 2 选项中调用了[object Object]

第二次选择更棘手,我希望它具有在我的第一次选择中选择的 id 的位置。所以如果我选择Company1了,它应该被填充,Place1, Place2, Place3如果我选择Company2了,它应该被填充Place4, Place5

提前谢谢你,丹尼尔!

4

2 回答 2

4

HTML

<div ng-app="myApp" ng-controller="ctrl">
    <select ng-options="partner as partner.partner_name 
    for partner in jsonPartners" ng-model="service_id"></select>

    <select ng-options="place for place in service_id.partner_location" 
    ng-model="service_location"></select>
</div>

JS

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

function ctrl($scope){
    $scope.jsonPartners = [{"partner_id":"8", ..},{"partner_id":"9", ..}]

    $scope.service_id = $scope.jsonPartners[1];
}

fiddle

于 2013-11-13T09:54:39.883 回答
2

我会添加ng-change默认选择第一项:

JS控制器

$scope.jsonPartners = [{
    "partner_id": "8",
    "partner_name": "Company1",
    "partner_location": ["Place1", "Place2", "Place3"],
    "partner_user": ["User1", "User2", "User3"]
}, {
    "partner_id": "9",
    "partner_name": "Company2",
    "partner_location": ["Place4", "Place5"],
    "partner_user": ["User4", "User5"]
}];


$scope.partner = $scope.jsonPartners[0];
$scope.place = $scope.partner.partner_location[0];

$scope.onChange = function(partner){       
  $scope.place = partner.partner_location[0];
}

HTML

<div ng-controller="fessCntrl">
     <select ng-model="partner"          
     ng-options="partner as partner.partner_name for partner in jsonPartners"
         ng-change="onChange(partner)"
     ></select>

     <select ng-model="place"         
             ng-options="place as place for place in partner.partner_location"         
      ></select>
</div>

演示Fiddle

于 2013-11-13T10:27:49.147 回答