【问题标题】:Angular ng-repeat to access object with in an objectAngular ng-repeat 访问对象中的对象
【发布时间】:2017-08-20 18:57:24
【问题描述】:

框架:AngularJS 1.4.X
问题:使用 in 对象访问对象
在内置指令中:ng-repeat

在指令中:

for ( i=0; i< something.lenght < i++)
    if ( element in elements ){
        sendData[i]=
        {
           pair:element,
           row:i
        } 
    } 
}
scope.obj[sendData] = sendData;

在视图中:

<somedirective obj="obj">
    <md-content ng-repeat="data in obj">
         {{obj[data].pair}}  or {{data.pair}}
    </md-content>
</somedirective>

控制台日志JSON.stringify(scope.obj)

{"[object Object]":{"14":{"pair":"HIT|CEDR3","row":14},"15":{"pair":"HIT|CEPR3","row":15},"16":{"pair":"HIT|CEKR3","row":16},"24":{"pair":"Book|Pro0","row":24}}

{{数据}}:

{"14":{"pair":"HIT|CEDR3","row":14},"15":{"pair":"HIT|CEPR3","row":15},"16":{"pair":"HIT|CEKR3","row":16},"24":{"pair":"Book|Pro0","row":24}}

我无法从 ng-repeat 中的第二个对象访问pair 属性,正如我在视图部分中提到的,我使用了{{obj[data].pair}} or {{data.pair}},如果我使用{{data}},它将打印所有对象属性/数据列表。

【问题讨论】:

  • 您如何无法使用{{data.pair}} 访问pair 属性?也许我误解了你在这里想要做什么。你能澄清一下吗?
  • 据我所知,ng 重复迭代数组而不是对象
  • @BenBeck:是的,我无法使用{{data.pair}}。我不知道我在这里错过了什么。
  • 您的样本中没有data.pair。有data.14.pairdata.15.pair 等。最重要的是,ng-repeat 并非旨在迭代对象属性。
  • 试试scope.obj = sendData;

标签: javascript angularjs angularjs-ng-repeat object-object-mapping


【解决方案1】:
scope.obj = {};
for ( i=0; i< something.lenght < i++)
    if ( element in elements ){
        sendData[i]=
        {
           pair:element,
           row:i
        } 
    } 
}
scope.obj = sendData;

我希望这对其他人有所帮助,并感谢奥斯卡。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-20
    • 2013-11-01
    • 2017-08-11
    • 1970-01-01
    • 2015-04-01
    • 2015-02-11
    • 1970-01-01
    • 2015-03-16
    相关资源
    最近更新 更多