Javascript 从对象生成的AngularJS选择框

Javascript 从对象生成的AngularJS选择框,javascript,angularjs,refactoring,Javascript,Angularjs,Refactoring,我正在重构一些代码,希望将代码/名称对象数组更改为命名对象。我想这样做,这样我就可以用它进行平等性测试。旧的方法是直接比较代码 if(current.addressCode === "1"){ ... } 但我更愿意这样做 if(current.addressCode === types.student.address.letter.code){ ... } 旧对象看起来像这样 student{ address: [ {code: "0", name: "Select proof

我正在重构一些代码,希望将代码/名称对象数组更改为命名对象。我想这样做,这样我就可以用它进行平等性测试。旧的方法是直接比较代码

if(current.addressCode === "1"){ ... }
但我更愿意这样做

if(current.addressCode === types.student.address.letter.code){ ... }
旧对象看起来像这样

student{
  address: [
    {code: "0", name: "Select proof of address"},
    {code: "1", name: "Letter"},
    {code: "3", name: "Photograph"}
  ],
  id: [
    {code: "0", name: "Select type of ID"},
    {code: "1", name: "Passport"},
    {code: "2", name: "Driving Licence"}
  ]
}
student: {
  address: {
    select: {code: "0", name: "Select proof of address"},
    letter: {code: "1", name: "Letter"},
    photograph: {code: "3", name: "Photograph"},
  },
  id: {
    select: {code: "0", name: "Select type of ID"},
    passport: {code: "1", name: "Passport"},
    drivingLicense: {code: "2", name: "Driving Licence"},
  }
}
<select ng-model="current.addressCode" ng-options="t.code as t.name for t in student.address"></select>
所以我希望我的新对象看起来像这样

student{
  address: [
    {code: "0", name: "Select proof of address"},
    {code: "1", name: "Letter"},
    {code: "3", name: "Photograph"}
  ],
  id: [
    {code: "0", name: "Select type of ID"},
    {code: "1", name: "Passport"},
    {code: "2", name: "Driving Licence"}
  ]
}
student: {
  address: {
    select: {code: "0", name: "Select proof of address"},
    letter: {code: "1", name: "Letter"},
    photograph: {code: "3", name: "Photograph"},
  },
  id: {
    select: {code: "0", name: "Select type of ID"},
    passport: {code: "1", name: "Passport"},
    drivingLicense: {code: "2", name: "Driving Licence"},
  }
}
<select ng-model="current.addressCode" ng-options="t.code as t.name for t in student.address"></select>
我被卡住的地方是,我不知道如何从这个对象生成angular js中的select元素,它以前是从像这样的旧结构生成的

student{
  address: [
    {code: "0", name: "Select proof of address"},
    {code: "1", name: "Letter"},
    {code: "3", name: "Photograph"}
  ],
  id: [
    {code: "0", name: "Select type of ID"},
    {code: "1", name: "Passport"},
    {code: "2", name: "Driving Licence"}
  ]
}
student: {
  address: {
    select: {code: "0", name: "Select proof of address"},
    letter: {code: "1", name: "Letter"},
    photograph: {code: "3", name: "Photograph"},
  },
  id: {
    select: {code: "0", name: "Select type of ID"},
    passport: {code: "1", name: "Passport"},
    drivingLicense: {code: "2", name: "Driving Licence"},
  }
}
<select ng-model="current.addressCode" ng-options="t.code as t.name for t in student.address"></select>

如何使用新对象生成select表单元素?

试试这个

<select ng-model="current.addressCode" ng-options="value.code as value.name for (key,value) in student.address"></select>

试试这个

<select ng-model="current.addressCode" ng-options="value.code as value.name for (key,value) in student.address"></select>


您知道如何按代码排序吗?这里有一个小问题:你知道如何按代码排序吗?这是一把小提琴: