Учитывая следующий элемент выбора
<select ng-options="size.code as size.name for size in sizes "
ng-model="item.size.code"
ng-change="update(MAGIC_THING)">
</select>
Есть ли способ , чтобы получить MAGIC_THING быть равно выбранным размером, поэтому у меня есть доступ к size.name
и size.code
в моем контроллере?
size.code влияет на многие другие части приложения (URL-адреса изображений и т. д.), но когда item.size.code
обновляется ng-модель , она также item.size.name
должна обновляться для пользовательского контента. Я предполагаю, что правильный способ сделать это - захват события изменения и установка значений внутри моего контроллера, но я не уверен, что я могу передать в обновление, чтобы получить правильные значения.
Если это совершенно неправильный путь, я бы хотел знать правильный путь.
<select>
: ng-init = "item = sizes [0]"ng-model="selectedItem" ng-change="update(selectedItem)"
Вы также можете напрямую получить выбранное значение, используя следующий код
script.js
источник
Вы также можете попробовать это:
источник
Если ответ Дивеша Рупавалы не работает (передача текущего элемента в качестве параметра), см.
onChanged()
Функцию в этом Plunker. Он используетthis
:http://plnkr.co/edit/B5TDQJ
источник
источник
Если вы хотите написать, имя, идентификатор, класс, несколько, обязательно, вы можете написать таким образом.
источник
Это может дать вам некоторые идеи
.NET C # Посмотреть модель
.NET C # Web Api Controller
Угловой контроллер:
Угловой шаблон:
источник
Вам нужно использовать «track by», чтобы объекты можно было правильно сравнивать. В противном случае Angular будет использовать собственный способ сравнения объектов с помощью js.
Таким образом, ваш пример кода изменится на -
источник
Фильтр AngularJS сработал для меня.
Предполагая , что
code/id
является уникальным , мы можем отфильтровать этот конкретный объект с AngularJS - хfilter
и работы с выбранными объектами недвижимости. Рассматривая пример выше:Теперь есть 3 важных аспекта этого :
ng-init="search.code = item.size.code"
- при инициализацииh1
элемента внеselect
поля установите для фильтра фильтра выбранную опцию .ng-change="update(MAGIC_THING); search.code = item.size.code"
- когда вы измените выбор ввода, мы запустим еще одну строку, которая установит поисковый запрос на текущий выбранныйitem.size.code
.filter:search:true
- Перейтиtrue
к фильтру, чтобы включить строгое соответствие .Вот и все. Если
size.code
это уникальный идентификатор , у нас будет только одинh1
элемент с текстомsize.name
.Я проверил это в моем проекте, и это работает.
Удачи
источник
Это самый чистый способ получить значение из списка опций углового выбора (кроме Id или Text). Предполагая, что у вас есть продукт, подобный этому на вашей странице:
Затем в вашем контроллере установите функцию обратного вызова так:
Объяснено просто: поскольку событие ng-change не распознает элементы опций в select, мы используем ngModel, чтобы отфильтровать выбранный Item из списка опций, загруженного в контроллер.
Кроме того, поскольку событие вызывается до того, как ngModel действительно обновится, вы можете получить нежелательные результаты, поэтому лучшим способом было бы добавить время ожидания:
источник