Angularjs 动态orderBy不使用ng模型
我无法根据所选值对列表进行排序。 对于这一点,什么是更好的做法Angularjs 动态orderBy不使用ng模型,angularjs,Angularjs,我无法根据所选值对列表进行排序。 对于这一点,什么是更好的做法 <select ng-model='selected'> <option value="name">Name</option> <option value="score">Score</option> </select> <ul ng-repeat="shop in shops track by $ind
<select ng-model='selected'>
<option value="name">Name</option>
<option value="score">Score</option>
</select>
<ul ng-repeat="shop in shops track by $index | orderBy: 'data.{{selected}}' ">
<li class="name">{{shop.data.name}}</li>
<li class="score">Score: {{shop.data.score}}</li>
<li><img ng-src="{{shop.data.img}}"> </li>
</ul>
名称
分数
- {{shop.data.name}
- score:{{shop.data.score}
下面的ng重复应该可以做到这一点
<ul ng-repeat="shop in shops | orderBy: selected track by $index ">
这是我尝试过的一个工作示例 HTML:
<select ng-model="selected">
<option value="name">Name</option>
<option value="score">Score</option>
</select>
<ul ng-repeat="shop in shops | orderBy:selected">
<li class="name">{{shop.name}}</li>
<li class="score">Score: {{shop.score}}</li>
</ul>
我认为你应该从我们的ng repeat中删除曲目
编辑:
你的重复应该是这样的
<ul ng-repeat="shop in shops | orderBy: selected ">
请参考这个
请参考您的尝试从
orderBy:'data.{{selected}}
-JS将其解释为字符串值,但您想从控制器中使用对象,正如我所设想的那样,并删除括号和数据
-所以尝试类似
这是我不工作的js FIDLE,只需要在您的FIDLE中进行两项更改:1)在选定的值中添加数据。名称而不是名称-对象属性不直接可见;)2) 在filterI更新了fiddle之后放入track by$index
。请检查它由于某些原因示例对我不起作用,非常感谢您的帮助,我的问题似乎是shops对象中的嵌套对象
<ul ng-repeat="shop in shops | orderBy: selected ">