2014-04-07 90 views
-1

我在以下对象中有一个订单属性。AngularJS选择唯一值

var media = [{ 
    id:1, 
    order:0, 
    text:'Lala' 
}, 
{ 
    id:2, 
    order:1, 
    text:'Lala' 
}] 

我用select如下:

<div ng-repeat = "asset in media"> 
    <select ng-model="asset.order" ng-options="c.order as c.order for c in media"> 
    </select> 
</div> 

每个对象都有其自己的领域。当我更改订单时,具有相同值的另一个字段必须交换。基本上,订单值应该是唯一的。

编辑:包括的jsfiddle:http://jsfiddle.net/hTwrF/1/

+6

目前还不清楚你是什么之后。也许一个例子会有所帮助。 – gkalpak

+0

看起来好像你有几个“资产”,你正在循环,显示在你的例子中,重新排序会有所帮助。通过jsfiddle.net小提琴将是最好的 – Brocco

+0

更新与例子。 – litenull

回答

1

这是完全可能的,当一个下拉变化调用使用纳克 - 变化的范围的方法。

你的逻辑可能需要根据资产数量发生变化,但是这应该表明你足够的前进(fiddle

ng-change="swapOrder(asset)" 
+0

哇!接受的答案!我想知道OP如何使用超过2个元素的解决方案... – gkalpak

+0

@ExpertSystem同意它不是100%插入和使用解决方案,但它证明了如何处理更改事件,以便适当的逻辑可以得到执行,我在我提供的答案中记录了这一点。 – Brocco

+0

你确实。我惊讶地发现OP找到了解决这个问题的答案(除非他们只有2个项目)。问题在于没有直接的方式来确定资产的先前顺序。 – gkalpak