2014-04-07 5 views
-1

У меня есть атрибут заказа в следующем объекте.AngularJS Выберите уникальное значение

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

Я использую выбрать следующим образом:

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

Каждый объект имеет свое собственное поле. Когда я меняю порядок, другое поле, которое имеет такое же значение, должно быть заменено. В принципе, значения порядка должны быть уникальными.

EDIT: Включено jsfiddle: http://jsfiddle.net/hTwrF/1/

+6

Это не ясно, что вы после этого. Может быть, пример поможет. – gkalpak

+0

Кажется, что у вас есть несколько «активов», которые вы просматриваете, показывая, что в вашем примере и переупорядочение было бы полезно. Скрипка через jsfiddle.net была бы лучше – Brocco

+0

Обновлено с примера. – litenull

ответ

1

Это вполне возможно, когда падение вниз изменений вызова метода с использованием области видимости нг-изменения.

Ваша логика, вероятно, потребуется изменить в зависимости от количества активов, но это должно показать вам достаточно, чтобы двигаться дальше (fiddle)

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

Ничего себе! Принятый ответ! Интересно, как OP собирается использовать это решение с более чем двумя элементами ... – gkalpak

+0

@ExpertSystem Согласна с тем, что это не 100% -ное подключение и использование решения, но оно доказывает, как обрабатывать событие изменения, чтобы соответствующая логика могут быть реализованы, и я отметил это в ответе, который я дал. – Brocco

+0

Вы действительно. Мое удивление приходит к OP, который нашел этот ответ, чтобы решить проблему (если только у них нет только 2 предмета). Проблема состоит в том, что нет никакого способа, способного определить прежний порядок актива. – gkalpak

Смежные вопросы