从AngularJS中的json对象绑定选择下拉列表

布雷特

我是Angular的新手,这是我的第一个主要障碍。我有一个从地址数据的第三方API返回的以下JSON对象,该地址已添加到控制器中的$ scope.AddressData中:

$scope.AddressData = [{
  "Address1":"South Row",
  "Address2":"Horsforth",
  "Address3":null,
  "Address4":null,
  "Town":"Leeds",
  "County":"West Yorkshire",
  "Postcode":"LS18 4AA",
  "PremiseData":"12;||13;||14;"
}];

如您所见,我在一条街道上有多个场所。我想要实现的是有一个选择框,其中每个PremiseData项都有一行,并在其后附加了其他字段。

给定上面的示例,我希望HTML为:

<select name="premises">
  <option value="12 South Row, Horsforth, Leeds, West Yorkshire"></option>
  <option value="13 South Row, Horsforth, Leeds, West Yorkshire"></option>
  <option value="14 South Row, Horsforth, Leeds, West Yorkshire"></option>
</select>

另外,一旦选择了一个项目,我想用相关数据填充其他输入。

谁能指出我正确的方向?

马克·皮萨克(Mark Pieszak)-Trilon.io

与Angular相比,它与JavaScript的关系更大,但是您只需要将它们分开PremiseData并构建自己的对象即可。

jsFiddle演示

// No point in adding this to your scope since you're not using it there
var addressData = [{
  "Address1":"South Row",
  "Address2":"Horsforth",
  "Address3":null,
  "Address4":null,
  "Town":"Leeds",
  "County":"West Yorkshire",
  "Postcode":"LS18 4AA",
  "PremiseData":"12;||13;||14;"
}];

$scope.addresses = [];

for (var i = 0; i < addressData.length; i++) {

    // Remove that last " ; "
    addressData[i].PremiseData = addressData[i].PremiseData.substr(0, addressData[i].PremiseData.length - 1);

    // Split by ;||
    var premises = addressData[i].PremiseData.split(';||');

    // Build new address
    for (var n = 0; n < premises.length; n++) {
        var address = premises[n] + ' ' 
            + addressData[i].Address1 + ' '
            + addressData[i].Address2 + ' '
            + addressData[i].Town + ' '
            + addressData[i].County;

        // Add this built address to your 
        $scope.addresses.push(address);        
    }
}

然后在您的html中,您只需使用ng-options即可遍历这些addresses,瞧!

<select ng-model="selectedAddress" ng-options="a as a for a in addresses"></select>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用AngularJS从JSON Feed中填充选择下拉列表?

使用optgroup从绑定选择下拉列表中获取所选对象

选择下拉列表最初不绑定到AngularJS模型

如何将.json文件绑定到MVC AngularJS中的自动完成下拉列表

如何将嵌套的json数据绑定到angularjs下拉列表中?

尝试将JSON对象绑定到下拉列表

使用json中的angularJs创建下拉列表

在AngularJS的下拉列表中显示JSON数据

在下拉列表中显示json对象

检查选择下拉列表中是否存在选项(来自 Json 对象)

AngularJS绑定数据以选择下拉列表,当另一个选择下拉列表的值更改时

如何在AngularJS中显示选择下拉列表中的键

使用ng-options AngularJS中的值选择下拉列表

在AngularJS的选择下拉列表中添加搜索过滤器

AngularJS中的动态下拉列表选择不起作用

angularjs 中未选择默认选项下拉列表

取消选择下拉列表中对象数组的值

在Angular中为选择下拉列表创建新对象

选择下拉列表时从数组中删除对象

选择下拉列表不绑定值

如果下拉列表与JSON键绑定,如何从下拉列表中获取所选值

Angular 6无法自动从提供的对象中选择/绑定下拉列表值

使用angularjs,jquery,json,ajax基于下拉选择绑定html表数据

使用jQuery在不同的下拉列表中显示嵌套的JSON对象

从对象数组初始化时,使用angularjs在SELECT下拉列表中选择特定项目

从AngularJs的下拉列表中选择多个选项

在angular.js的选择下拉列表中绑定值和文本

如何通过PHP中的MySQL从选定值和其他值绑定选择下拉列表

使用AngularJs从数据绑定的JSON列表中删除项目