从angularjs中的下拉列表中删除undefiend值

时间:2016-04-18 07:09:29

标签: javascript angularjs

  

块引用

虽然选择材料列第一列显示未定义,所以我需要从下拉列表中删除undefined,html / json数据需要进行哪种更改才能正常工作。

  

块引用



[routerLink]="['/Account/Register']

var app = angular.module('Calc', []);
app.controller('Calc_Ctrl', function($scope) {
$scope.type = {
	"ceramicAndVetrified": {	
	"flooringWork": {
			"typeOfWork":"Flooring Work",
			"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",
					
				}]
			}
		},
		"wallTilingWork": {
			"typeOfWork":"Wall Tiling Work",
			"ceramicTile": {
				"activity": "Ceramic Tile",
				"unitOfWork": "sqm",
				"coeffecient": {
					"ceramicTile": "",
					
				},
				"material": "Ceramic wall tile",
				"tileSizes": [{
					"tileDimension": "300X300",
					
				}, {
					"tileDimension": "450X450",
					
				}, {
					"tileDimension": "300X450",
					
				}]
			},
			"vitrifiedTile": {
				"activity": "Vitrified Tile",
				"unitOfWork": "sqm",
				"coeffecient": {
					
				},
				"material": "Vitrified wall tile",
				"tileSizes": [{
					"tileDimension": "450X450",
					
				}, {
					"tileDimension": "300X450",
					
				}]
			}
		}
	},
	"images": {
		"calculatorHeaderImage": "http://www.msupply.com/media/catalog/product/0/0/00201000404.jpg",
		"imageURLs": ["http://www.msupply.com/media/catalog/product/0/0/00201000404.jpg", "http://www.msupply.com/media/catalog/product/0/0/00201000404.jpg"]
	}
}

});




1 个答案:

答案 0 :(得分:0)

发生这种情况的原因是因为typeOfWork.activityundefined

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

您应该考虑更改数据结构,或创建一个检查[Object].activity

的过滤器

如果你可以改变数据,你应该考虑这样的事情;

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