Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.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
Angularjs 在选择中显示多个值,一项一项地显示_Angularjs_Select_Ng Options - Fatal编程技术网

Angularjs 在选择中显示多个值,一项一项地显示

Angularjs 在选择中显示多个值,一项一项地显示,angularjs,select,ng-options,Angularjs,Select,Ng Options,我有以下json语法: { "count": 90, "results": [ { "tra_keywords": [ "car", "plane", "Bike", "boat" ], "tra_title": "Jack" }, { "tra_keywords":

我有以下json语法:

{
    "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"