【问题标题】:value on select tag HTML convert array to string Javascript选择标记 HTML 上的值将数组转换为字符串 Javascript
【发布时间】:2016-01-24 03:16:29
【问题描述】:

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

$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>  

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

控制台输出如下所示:

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

我想将对象作为数组获取,因为那时我会执行 $Scope.address.state.city

【问题讨论】:

    标签: javascript html arrays angularjs angular-ngmodel


    【解决方案1】:

    您可以在&lt;select&gt; 标记中执行ng-options,而不是在&lt;option&gt; 标记上执行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

    【讨论】:

    • 当您以value="{{state}}" 传递时,由于“{{ ... }}”,您将该对象转换为字符串,而使用ng-options,您传递的是实际对象
    猜你喜欢
    • 1970-01-01
    • 2022-01-19
    • 2020-08-17
    • 2021-10-23
    • 2012-09-08
    • 1970-01-01
    • 2022-01-23
    • 2020-12-23
    • 1970-01-01
    相关资源
    最近更新 更多