Angularjs 在选择中显示多个值,一项一项地显示
我有以下json语法:Angularjs 在选择中显示多个值,一项一项地显示,angularjs,select,ng-options,Angularjs,Select,Ng Options,我有以下json语法: { "count": 90, "results": [ { "tra_keywords": [ "car", "plane", "Bike", "boat" ], "tra_title": "Jack" }, { "tra_keywords":
{
"count": 90,
"results": [
{
"tra_keywords": [
"car",
"plane",
"Bike",
"boat"
],
"tra_title": "Jack"
},
{
"tra_keywords": [
"blue",
"red",
"green",
"silver"
],
"tra_title": "Averell"
},
{
"tra_keywords": [
"square",
"column",
"square",
"line"
"tra_title": "Joe"
}
]
}
我想在选择框中显示我所有的tra_关键字。
我用这个:
<select class="form-control" id="rechercheKeywords" ng-model="rechercheKeywords" ng-options="resultats.tra_keywords for resultats in resultatsJSON.results"></select>
我想要一个一个的。选择显示我想要的:
first option: car
second option: plane
... Bike
boat
blue
red
green
silver
square
column
line
我该怎么做?我认为我的ng选项不正确。谢谢
我通过以下方式接收我的数据:
myApp.controller("myappCtrl", ['$scope','$http',function($scope,$http) {
$http.get('../testANGULAR/json/flux.json')
.success(function(data){
scope.resultatsJSON=data;
})....
你说得对,你的
ng选项不正确。应该是:
ng-options="keyword for keyword in resultatsJSON.results[0].tra_keywords"
编辑:
阅读其中一条评论的答案,如果你想从所有结果中创建一个列表,那么你需要将数据展平<代码>ng选项
需要迭代一个项目数组,或者迭代一个对象-属性
下面是一个关于如何展平的示例
var-app=angular.module('app',[]);
应用控制器('fCtrl',功能($scope){
$scope.data={
“计数”:90,
“结果”:[{
“tra_关键字”:[
“汽车”,
“飞机”,
“自行车”,
“船”
],
“tra_title”:“Jack”
}, {
“tra_关键字”:[
“蓝色”,
“红色”,
“绿色”,
“银色”
],
“tra_title”:“Averell”
}, {
“tra_关键字”:[
“广场”,
“专栏”,
“广场”,
“行”
],
“茶名”:“乔”
}]
};
$scope.getKeywords=函数(){
var关键字=[];
角度.forEach($scope.data.results,function(obj){
angular.forEach(obj.tra_关键字,函数(关键字){
if(关键字索引of(关键字)<0)
关键词:推送(关键词);
});
});
返回关键字
}
});代码>
所选:{rechercheKeywords}}
这解决了我的问题,感谢所有人,特别是sss和新开发人员
var-app=angular.module('app',[]);
应用控制器('fCtrl',功能($scope){
$scope.data={
“计数”:90,
“结果”:[{
“tra_关键字”:[
“汽车”,
“飞机”,
“自行车”,
“船”
],
“tra_title”:“Jack”
}, {
“tra_关键字”:[
“蓝色”,
“红色”,
“绿色”,
“银色”
],
“tra_title”:“Averell”
}, {
“tra_关键字”:[
“广场”,
“专栏”,
“广场”,
“行”
],
“茶名”:“乔”
}]
};
$scope.getKeywords=函数(){
var关键字=[];
角度.forEach($scope.data.results,function(obj){
angular.forEach(obj.tra_关键字,函数(关键字){
if(关键字索引of(关键字)<0)
关键词:推送(关键词);
});
});
返回关键字
}
});代码>
所选:{rechercheKeywords}}
显示如何接收数据的可能重复项。是否要显示所有结果对象中的所有tra_关键字?是的,从所有我的结果对象中。ok,它对我的第一个结果(结果[0])效果良好。但正如你所说,如何展平数据以显示其他结果?通过迭代结果
并将所有tra_关键字
收集到一个数组中(如果需要,消除重复)。我尝试了许多解决方案来正确展平tra_关键字数组,但没有成功。我已经在我的项目中使用了角度过滤器(),他们有一些有趣的过滤器(展平、贴图),但我总是无法正确使用。用一个插件更新了答案您的答案很有效,谢谢,但我没有说我有多个结果,希望显示所有结果。不仅结果[0]@Davy你能回答一下你的问题吗?你的json看起来怎么样?你想要什么?你的下拉主题更新了json的多个结果吗?我想要我的selec@Davy最后一个是您希望在页面上为每个节点进行多个选择,还是一个选择包含我想要的所有tra_关键字中的所有关键字仅选择一个包含所有my tra_关键字中所有关键字的用户
ng-options="keyword for keyword in resultatsJSON.results[0].tra_keywords"