select 标签上的值 HTML 将数组转换为字符串 Javascript

value on select tag HTML convert array to string Javascript

我正在使用 Javascript 和 Angular Js,在我的控制器中我有以下项目:

$scope.address = [];
$scope.states = [
    { name:"State 1", cities:[ "City Mexico 1", "City Mexico 2","City Mexico 3"] },
    { name:"State 2", cities:["City  1", "City  2", "City  3"] }
  ];

在我看来我正在做 :

<select ng-model="address.state" placeholder="Estado" >
            <option ng-repeat="state in states" value="{{state}}"> {{state.name}}</option>
          </select>  

如果我 select 一个选项,然后我执行 console.log(address.state) 我将对象作为字符串而不是数组获取。如何将对象作为数组 (json).

控制台输出如下所示:

[state: "{"name":"State 1","cities":["City Mexico 1","City Mexico 2","City Mexico 3"]}"]

我想以数组的形式获取对象,因为那样我就做 $Scope.address.state.city

您可以在 <select> 标签中执行 ng-options,而不是在 <option> 标签上执行 ng-repeat

<select ng-model="address.state" ng-options="state.name for state in states" placeholder="Estados"></select>

这样状态的对象被传递到 $scope.address 你可以做 $scope.address.state.cities

工作示例:https://plnkr.co/edit/k2gK5GNEt2xTrMbwih7V?p=preview