Отключить опцию выбора с помощью angular ng-options

следуя угловой документации

рекомендации по ng-options

Я пишу эту часть кода:

<select ng-model="model" ng-options="item.CODE as item.NAME disable when item.DISABLE for item in list" id="foo" name="foo" ng-change="change()">

но верните мне эту ошибку:

Синтаксическая ошибка: токен 'disable' является неожиданным токеном в столбце 11 выражения [{3}], начиная с [{4}].

Что я делаю неправильно?


person Roberto    schedule 06.04.2016    source источник


Ответы (2)


Вы ссылаетесь на неправильный синтаксис. Для отключения с помощью массива доступно только два синтаксиса.

  1. метка отключена при отключении для значения в массиве
  2. метка отключена при отключении для значения в массиве track by trackexpr

Попробуйте следующее:

<select ng-model="model" ng-options="item.CODE disable when item.DISABLE for item in list" id="foo" name="foo" ng-change="change()">
person Jenish Rabadiya    schedule 06.04.2016
comment
Ну, у него объектный источник данных, я думаю, а не массив! - person Victor Benetatos; 06.04.2016
comment
@VictorBenetatos имя (list) дало мне подсказку, что это массив. - person Jenish Rabadiya; 06.04.2016
comment
Вы говорите, что item.one as item.two нельзя использовать при отключении? - person ste2425; 06.04.2016
comment
@ ste2425 ммм, да, согласно документу. - person Jenish Rabadiya; 06.04.2016
comment
@JenishRabadiya ааа не видел версию документов, как уже упоминалось, это совершенно правильный синтаксис в более новой версии, что меня смутило. - person ste2425; 06.04.2016
comment
Итак, вы думаете, что проблема в том, что я использую массив в таком формате: [{КОД: , ИМЯ: , ОТКЛЮЧИТЬ: true}, ..] - person Roberto; 06.04.2016
comment
@ Роберто Да. или используйте этот синтаксис select as label disable when disable for (key, value) in object - person Jenish Rabadiya; 06.04.2016
comment
Я пытаюсь, как вы пишете в своем первом ответе, но все равно не работает. Теперь я собираюсь попробовать новый синтаксис, который вы сейчас пишете. - person Roberto; 06.04.2016
comment
@Roberto это работает, посмотри на мою ссылку здесь. - person Jenish Rabadiya; 06.04.2016
comment
@Jenish да, но при этом при выборе появляется строка CODE, а не строка NAME - person Roberto; 06.04.2016
comment
Мне нужно, чтобы выбор показывал tiem.NAME, но в MODEL переходил item.CODE - person Roberto; 06.04.2016

Попробуйте обновить версию angular.js. Этот функционал был добавлен в версии 1.4.X и выше.

person Vineet Desai    schedule 06.04.2016
comment
Ну, я думаю, директивы Whole ngOption не было в более ранней версии. - person Jenish Rabadiya; 06.04.2016
comment
Я использую версию 1.4.4 - person Roberto; 06.04.2016
comment
когда я перехожу на code.angularjs.org/1.4.5/angular.js (v1.4.5) эта версия отключила все, что у меня работало раньше, у меня была v1.3.0 - person Ishara Samintha; 04.03.2020