Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 用于ng重复的角度滤波器_Angularjs_Angularjs Ng Repeat - Fatal编程技术网

Angularjs 用于ng重复的角度滤波器

Angularjs 用于ng重复的角度滤波器,angularjs,angularjs-ng-repeat,Angularjs,Angularjs Ng Repeat,我的json对象有一个名为keynote的字段,其值为0或1 [{ "id": 111, "title": "Senior Vice President and Chief Analytics Officer", "name": "jon doe", "company": "Entertainment Corporation", "keynote": 1 }, { "id": 102, "title": "CEO and Mobile Ma

我的json对象有一个名为keynote的字段,其值为0或1

[{
    "id": 111,
    "title": "Senior Vice President and Chief Analytics Officer",
    "name": "jon doe",
    "company": "Entertainment Corporation",
    "keynote": 1
},
{
    "id": 102,
    "title": "CEO and Mobile Market Strategist",
    "name": "john",
    "company": "Research",
    "keynote": 1
},
{
    "id": 102,
    "title": "CEO and Mobile Market Strategist",
    "name": "john",
    "company": "Research",
    "keynote": 0
},
{
    "id": 102,
    "title": "CEO and Mobile Market Strategist",
    "name": "john",
    "company": "Research",
    "keynote": 0
}]
我想在我的应用程序中显示两种列表。一个列表包含注释记号演讲者,另一个列表包含注释记号=0

<li class="table-view-cell" data-ng-repeat="speaker in speakers | filter:speaker.keynote=1 ">
<span class="speaker-name">{{speaker.name}}</span>
</li>

<li class="table-view-cell" data-ng-repeat="speaker in speakers | filter:speaker.keynote=0 ">
<span class="speaker-name">{{speaker.name}}</span>
</li>
  • {{speaker.name}
  • {{speaker.name}

  • 正确的语法是
    filter:{propertyName:'value'}
    ,因此
    ng repeat=“speaker in speakers | filter:{keynote:0}”将适用于您

    我建议实现类似这样的功能,以使代码更加枯燥:

    <ul>
      <li ng-repeat="i in range"> // or i in [0,1]
        <h3>Keynote: {{i}}</h3>
        <ul>
          <li ng-repeat="speaker in speakers | filter:{keynote:i}">
            <span>{{speaker.name}}</span>
          </li>
        </ul>
      </li>
    </ul>
    

    根据您的评论,以下是一种让您的特定代码变得枯燥的方法:

    <ul>
      <li ng-repeat="(title, isKeynote) in {Keynote:1, Sessions:0}">
        <h3>{{title}}</h3>
        <ul>
          <li ng-repeat="speaker in speakers | filter:{keynote:isKeynote}">
            <span>{{speaker.name}}</span>
          </li>
        </ul>
      </li>
    </ul>
    
    • {{title}}
      • {{speaker.name}

    实际上不想合并,两者都是标题不同的单独列表contents@user2727195那很好,但是我没有回答你的问题吗?我只是添加了额外的细节…不,因为在你的h3中,它说的是Keynote,我对每个列表都有不同的标题,这是重复的,但这就是为什么,除非你能证明我对每个迭代都有不同的标题,否则我现在只有两个,1->key note speaker,0->sessionspeaker@user2727195我的
    h3
    不重要,是吗?代码的问题是
    过滤器
    表达式不正确。只要看一下我答案的第一行,没有别的,如果这让你更开心的话……好了,明白了,如果我想继续干下去,我怎么能在显示不同于
    h3
    中预定义值(注释记号或会话)的标题/文本时实现,现在我有了重复的代码,一个用于注释记号,一个用于会话
    <ul>
      <li ng-repeat="(title, isKeynote) in {Keynote:1, Sessions:0}">
        <h3>{{title}}</h3>
        <ul>
          <li ng-repeat="speaker in speakers | filter:{keynote:isKeynote}">
            <span>{{speaker.name}}</span>
          </li>
        </ul>
      </li>
    </ul>