Входное значение AngularJS как массив, не соответствующий модели

Я создаю сортировку по ячейкам, чтобы помочь отсортировать мои повторяющиеся данные ng.

Моя сортировка сейчас выглядит так:

<select name="day" ng-model="Events.orderAttraction" data-ng-change="Events.limit = 6">
    <option value="['!rating', '-rating']">Rating (high to low)</option>
    <option value="rating">Rating (low to high)</option>
    <option value="name">Attraction (a-z)</option>
    <option value="-name">Attraction (z-a)</option>
</select>

И моя переменная порядка в моем контроллере в настоящее время:

vm.orderAttraction = ["!rating", "-rating"];

Поскольку мое первое значение параметра совпадает с моим значением модели, с которым связано мое поле выбора, оно должно быть по умолчанию на это значение при загрузке страницы. Куда я попал? object: 5? (пустой вариант), когда мое поле выбора загружается на страницу.

У меня такое ощущение, что angular принимает значение моего параметра как строку, а не массив, следовательно, не сопоставляет его со значением модели. Но я просто не могу разобраться с этим.

Спасибо за любую помощь.


person Dayle Salmon    schedule 27.05.2016    source источник


Ответы (1)


Из https://docs.angularjs.org/api/ng/directive/ngOptions:

ngOptions следует использовать, когда модель должна быть привязана к нестроковому значению. Это связано с тем, что в настоящее время элемент option может быть привязан только к строковым значениям.

person JcT    schedule 27.05.2016
comment
Ага, отстой, попробую на следующей неделе на работе. Если сработает, отмечу как правильный ответ. - person Dayle Salmon; 27.05.2016
comment
Я могу представить, что вы могли бы собрать другое решение, используя JSON.parse и JSON.stringify для преобразования туда и обратно, но я думаю, что это будет сложнее, чем иметь дело с ngOptions. - person JcT; 28.05.2016