Javascript 从angularjs中的下拉列表中删除未定义的值

Javascript 从angularjs中的下拉列表中删除未定义的值,javascript,angularjs,Javascript,Angularjs,大宗报价 当选择material列时,第一列显示undefined,所以我需要从下拉列表中删除undefined,需要对html/json数据进行什么样的更改才能正常工作 大宗报价 var-app=angular.module('Calc',[]); 应用控制器('Calc_Ctrl',函数($scope){ $scope.type={ “ceramicAndVetrified”:{ “地板工程”:{ “工作类型”:“地板工作”, “陶瓷砖”:{ “活动”:“瓷砖”, “单位工程”:“平方米”

大宗报价

当选择material列时,第一列显示undefined,所以我需要从下拉列表中删除undefined,需要对html/json数据进行什么样的更改才能正常工作

大宗报价

var-app=angular.module('Calc',[]);
应用控制器('Calc_Ctrl',函数($scope){
$scope.type={
“ceramicAndVetrified”:{
“地板工程”:{
“工作类型”:“地板工作”,
“陶瓷砖”:{
“活动”:“瓷砖”,
“单位工程”:“平方米”,
“系数”:{
“陶瓷砖”:“,
},
“材料”:“陶瓷地砖”,
“瓷砖化”:[{
“瓷砖尺寸”:“300X300”,
}, {
“瓷砖尺寸”:“600X600”,
}]
},
“玻化砖”:{
“活动”:“玻化砖”,
“单位工程”:“平方米”,
“系数”:{
},
“材料”:“玻化地砖”,
“瓷砖化”:[{
“瓷砖尺寸”:“600X600”,
}, {
“瓷砖尺寸”:“800X800”,
}, {
“瓷砖尺寸”:“1200X600”,
}]
}
},
“墙砖工程”:{
“工程类型”:“墙面瓷砖工程”,
“陶瓷砖”:{
“活动”:“瓷砖”,
“单位工程”:“平方米”,
“系数”:{
“陶瓷砖”:“,
},
“材料”:“陶瓷墙砖”,
“瓷砖化”:[{
“瓷砖尺寸”:“300X300”,
}, {
“瓷砖尺寸”:“450X450”,
}, {
“瓷砖尺寸”:“300X450”,
}]
},
“玻化砖”:{
“活动”:“玻化砖”,
“单位工程”:“平方米”,
“系数”:{
},
“材料”:“玻化墙砖”,
“瓷砖化”:[{
“瓷砖尺寸”:“450X450”,
}, {
“瓷砖尺寸”:“300X450”,
}]
}
}
},
“图像”:{
“calculatorHeaderImage”:http://www.msupply.com/media/catalog/product/0/0/00201000404.jpg",
“图像URL”:[“http://www.msupply.com/media/catalog/product/0/0/00201000404.jpg", "http://www.msupply.com/media/catalog/product/0/0/00201000404.jpg"]
}
}
});

类型
材料
尺寸:

发生这种情况的原因是
工作类型.活动
未定义的

"flooringWork": {
            "typeOfWork":"Flooring Work",

你应该考虑改变你的数据结构,或者创建一个过滤器来检查<代码> [Obj]。


如果你能改变数据,你应该考虑这样的事情;
    {
  "flooringWork":
  {
    "typeOfWork": "Flooring Work",
    "activities": [
      {
        "ceramicTile": {
          "activity": "Ceramic Tile",
          "unitOfWork": "sqm",
          "coeffecient": {
            "ceramicTile": "",

          },
          "material": "Ceramic floor tile",
          "tileSizes": [
            {
              "tileDimension": "300X300",

            }, {
              "tileDimension": "600X600",

            }
          ]
        },
        "vitrifiedTile": {
          "activity": "Vitrified Tile",
          "unitOfWork": "sqm",
          "coeffecient": {},
          "material": "Vitrified floor tile",
          "tileSizes": [
            {
              "tileDimension": "600X600",

            }, {
              "tileDimension": "800X800",

            }, {
              "tileDimension": "1200X600",

            }
          ]
        }
      }
    ]
  }
}
然后,您可以将您的选择更新到此

<select class="form-control" id="sel2" ng-disabled="!selectedcategory" ng-model="selectedtype" ng-options="y.activity for (x, y) in selectedcategory.activities" ng-change="GetSelectedType()">
                              </select>


您的json结构不一致。请进行修改consistent@RIYAJKHAN,这是如何使json一致的唯一问题,因为对于UI显示,我只需要显示活动列而不是键,如果我添加“flooringWork”:{“typeOfWork”:“Flooring Work”,“activities”:[{}]然后它不会在secound列中显示任何内容,正如前面所说,您也必须更新HTML,当然,将活动放入活动中会很好,但一次只能显示一个活动,因为我们不能在同一个变量中同时显示两个活动。“typeOfWork”:“地板工作”,“活动”:[{“活动”:“瓷砖”,“活动”:“玻化砖”}],