动态订单不适用于ng-model

时间:2015-07-08 09:49:01

标签: angularjs

我无法根据所选值获取订单。 什么被认为是更好的做法?

<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>

2 个答案:

答案 0 :(得分:2)

这是我尝试过的。

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>

JS:

$scope.shops= [     {name : "A",score : 13},
                        {name : "B",score : 11},
                        {name : "C",score : 12},
                        {name : "A",score : 11},
                        {name : "B",score : 12},
                        {name : "C",score : 11}

                    ];

我认为您应该从ng-repeat中删除追踪

编辑:

你的ng-repeat应该是这样的

<ul ng-repeat="shop in shops | orderBy: selected ">

请参阅此Plunker

请参阅您的fiddle

答案 1 :(得分:0)

以下ng-repeat应该可以解决这个问题

<ul ng-repeat="shop in shops | orderBy: selected track by $index  ">

Here是一个有效的例子