简体   繁体   English

AngularJS选择元素值是一个对象,为什么?

[英]AngularJS select element value is an object, why?

I have a JSON object like: 我有一个JSON对象,例如:

{
    "9000A": {
        "LOCname":"A Location"
        "LOCid":"9000A"
    },
    "2700C": {
        "LOCname":"C Location"
        "LOCid":"2700C"
    },
    "7600B": {
        "LOCname":"B Location"
        "LOCid":"7600B"
    }
}

I need to sort it by LOCname to display in a select list, I do this using a custom filter that turns the JSON object into an array: 我需要按LOCname对其进行排序以显示在选择列表中,我使用一个将JSON对象转换为数组的自定义过滤器进行了此操作:

<select name="location" ng-model="formData.location" ng-options="loc.LOCname for loc in (locations | json2array | orderBy:'LOCname') track by loc.LOCid">
    <option style="display:none" value="" disabled selected>Choose a location.</option>
</select>

This works great my options look like: 这很好用,我的选择如下所示:

<option value="9000A" label="A Location">A Location</option>
<option value="7600B" label="B Location">B Location</option>
<option value="2700C" label="C Location">C Location</option>

My problem is that formData.location is now equal to an object: 我的问题是formData.location现在等于一个对象:

{"LOCname":"A Location","LOCid":"9000A"}

Expected result is that formData.location would be equal to "9000A" 预期结果是formData.location等于“ 9000A”

Anyone able to explain why this is happening and how to fix it? 任何人都能解释为什么会发生这种情况以及如何解决?

because of the way u use ng-options 由于您使用ng-options

if you use ng-options as 如果您使用ng-options作为

ng-options="color.LOCid as loc.LOCname for loc in (locations |..."

you can select the ID 您可以选择ID

explanation 说明

color.LOCid as loc.LOCname for loc in (locations |... color.LOCid作为loc.LOCname的位置(位置| ...

location is the array we need to iterate location是我们需要迭代的数组

loc is a single object loc.LOCname for 'loc.LOCname' is the value we need to show loc是单个对象loc.LOCname,“ loc.LOCname”是我们需要显示的值

color.LOCid in is the value of selected option color.LOCid in是所选选项的值

(if you do not set "color.LOCid in") by default is select the whole object in your case its loc 在默认情况下(如果不设置“color.LOCid中”)是在你的情况下,其选择整个对象loc

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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