Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在select选项而不是object:1等上获取字符串值_Javascript_Html_Angularjs - Fatal编程技术网

Javascript 如何在select选项而不是object:1等上获取字符串值

Javascript 如何在select选项而不是object:1等上获取字符串值,javascript,html,angularjs,Javascript,Html,Angularjs,如何使用实际字符串生成角度填充值。 我想要这个 <option label="New York City" value="New York City">New York City</option> <option label="New York City" value="New York City">New York City</option> 我将确定您的countries对象是一个Json,它有一个value字段,您可以在其中保存花旗的名称

如何使用实际字符串生成角度填充值。 我想要这个

<option label="New York City" value="New York City">New York City</option>
<option label="New York City" value="New York City">New York City</option>

我将确定您的
countries
对象是一个Json,它有一个
value
字段,您可以在其中保存花旗的名称。也就是说,您可以使用此


城市:
挑选
在我大量阅读之后,我找到了一个解决方案。 如果您想让选项值反映值而不是对象,那么它非常简单,您只需添加
track by

<select id="country" ng-model="states" ng-options="country for (country, states) in countries track by country" required>
<option value=''>Select</option>
</select>

挑选
你会得到这个

纽约市
而不是这个

<option label="New York City" value="object:3">New York City</option>
<option label="New York City" value="object:3">New York City</option>
纽约市

您提供的代码运行良好。您在select中提出了一个选项标记值的问题,该值为value=“object:3”,但它是select的一种内部索引,这就是为什么其他select可以正常工作的原因

工作代码(不更改对象):

这种方法真的很酷,而且是一种快速创建顺序选择的方法。无论如何,回到你的问题上来。因为您希望输入看起来像value=“newyork”,所以我尝试这样做。但从我看到的情况来看,这打乱了对象的内部索引,第一个选择单独起作用,而另一个选择只是将字符串拆分为单个字符

对于ng选项(value=“object:3”):

a尝试设置值(不更改对象):

最终解决方案: 您希望select显示该值的原因必须是您想要国家的实际值(即“纽约”而不是“对象:3”),因此我建议您需要更改主对象的结构,如下所示

$scope.countries = [{
                    'state': 'New York City',
                    'cities': [{'city': 'manhattan', 'districts': ['Battery Park','Chelsea','Chinatown / Lit Italy','Downtown','East Harlem','East Village','Financial District','Flatiron','Gramercy','Greenwich Village','Harlem / Morningside','Inwood / Wash Hts','Lower East Side','Midtown','Midtown East','Midtown West','Murray Hill','Nolita / Bowery','SoHo','TriBeCa','Union Square','Upper East Side','Upper West Side','West Village']}
                    ,{'city': 'brooklyn', 'districts': []}
                    ,{'city': 'queens', 'districts': []}
                    ,{'city': 'bronx', 'districts': []}
                    ,{'city': 'staten island', 'districts': []}
                    ,{'city': 'new jersey', 'districts': []}
                    ,{'city': 'long island', 'districts': []}
                    ,{'city': 'westchester', 'districts': []}
                    ,{'city': 'fairfield co', 'districts': []}
                    ,{'city': 'fairfield co, CT', 'districts': []}]
                    },{
                    'state': 'Chicago',
                    'cities': [{'city': 'city of chicago', 'districts': []}
                    ,{'city': 'north chicagoland', 'districts': []}
                    ,{'city': 'west chicagoland', 'districts': []}
                    ,{'city': 'south chicagoland', 'districts': []}
                    ,{'city': 'northwest indiana', 'districts': []}
                    ,{'city': 'northwest suburbs', 'districts': []}]
                    },{
                    'state': 'Washington',
                    'cities': [{'city': 'district of columbia', 'districts': []}
                    ,{'city': 'northern virginia', 'districts': []}
                    ,{'city': 'maryland', 'districts': []}]
                    }
                ];
然后,我们可以通过访问($scope.state、$scope.city、$scope.district)轻松访问各个州的城市和国家。

angular.module('myApp',[]);
角度.module('myApp')。控制器('testCtrl',函数($scope){
$scope.countries=[{
“州”:“纽约市”,
“城市”:[{“城市”:“曼哈顿”,“地区”:[‘炮台公园’、‘切尔西’、‘唐人街/光明意大利’、‘市中心’、‘东哈莱姆’、‘东村’、‘金融区’、‘扁平铁’、‘格拉梅西’、‘格林威治村’、‘哈莱姆/晨曦边’、‘因伍德/华盛顿Hts’、‘下东区’、‘中东区’、‘中西区’、‘莫里山’、‘诺利塔/鲍里’、‘索霍’、‘特里贝卡’、‘联合广场’、‘上东区’、‘上西区’ide','West Village']}
,{'city':'brooklyn','districts':[]}
,{'city':'queens','districts':[]}
,{'city':'bronx','districts':[]}
,{'city':'staten island','districts':[]}
,{'city':'NewJersey','districts':[]}
,{'city':'long island','districts':[]}
,{'city':'westchester','districts':[]}
,{'city':'fairfield co','districts':[]}
,{'city':'fairfield co,CT','districts':[]}]
},{
“州”:“芝加哥”,
‘城市’:[{‘城市’:‘芝加哥市’,‘地区’:[]}
,{'city':'north chicagoland','districts':[]}
,{'city':'west chicagoland','districts':[]}
,{'city':'south chicagoland','districts':[]}
,{'city':'northwest indiana','districts':[]}
,{'城市':'西北郊区','地区':[]}]
},{
“州”:“华盛顿”,
‘城市’:[{‘城市’:‘哥伦比亚特区’,‘地区’:[]}
,{'city':'northern virginia','districts':[]}
,{'city':'maryland','districts':[]}]
}
];
});

城市:
挑选
分区:
挑选
SpecLoc:
挑选 {{城市} {{states.state} {{城市,城市} {{地区}
为什么需要显示值?否则,您也可以显示正确的值,所有内容都将通过ng-model绑定到控制器。您在哪里看到对象:3?他们做的正是您在文档中看到的:@Milos您可以提供国家和州对象吗?@NarenMurali更新了事实上它是一个数组,没有键和值的内容。尝试后我发现了一个解决办法。
<option label="New York City" value="New York City">New York City</option>
<option label="New York City" value="object:3">New York City</option>
<select id="country" ng-model="states" ng-options="country for (country, states) in countries" required> 
<select id="country" ng-model="states" ng-options="country as country for (country, states) in countries" required> 
ng-options="value as label for (key, value) in object"
$scope.countries = [{
                    'state': 'New York City',
                    'cities': [{'city': 'manhattan', 'districts': ['Battery Park','Chelsea','Chinatown / Lit Italy','Downtown','East Harlem','East Village','Financial District','Flatiron','Gramercy','Greenwich Village','Harlem / Morningside','Inwood / Wash Hts','Lower East Side','Midtown','Midtown East','Midtown West','Murray Hill','Nolita / Bowery','SoHo','TriBeCa','Union Square','Upper East Side','Upper West Side','West Village']}
                    ,{'city': 'brooklyn', 'districts': []}
                    ,{'city': 'queens', 'districts': []}
                    ,{'city': 'bronx', 'districts': []}
                    ,{'city': 'staten island', 'districts': []}
                    ,{'city': 'new jersey', 'districts': []}
                    ,{'city': 'long island', 'districts': []}
                    ,{'city': 'westchester', 'districts': []}
                    ,{'city': 'fairfield co', 'districts': []}
                    ,{'city': 'fairfield co, CT', 'districts': []}]
                    },{
                    'state': 'Chicago',
                    'cities': [{'city': 'city of chicago', 'districts': []}
                    ,{'city': 'north chicagoland', 'districts': []}
                    ,{'city': 'west chicagoland', 'districts': []}
                    ,{'city': 'south chicagoland', 'districts': []}
                    ,{'city': 'northwest indiana', 'districts': []}
                    ,{'city': 'northwest suburbs', 'districts': []}]
                    },{
                    'state': 'Washington',
                    'cities': [{'city': 'district of columbia', 'districts': []}
                    ,{'city': 'northern virginia', 'districts': []}
                    ,{'city': 'maryland', 'districts': []}]
                    }
                ];