2014-04-07 120 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