1

У меня есть список выбора, который я получаю от контроллера, написанный так:AngularJS: массив [{{значение}}] вызывает синтаксическую ошибку, что я хочу, чтобы игнорировать

<select class="input form-control" 
    id="animationTime" 
    ng-options="item as item.label for item in aniCon.timeOptions track by item.id" 
    ng-model="aniCon.popupTime" 
    ng-init="aniCon.popupTime = aniCon.timeOptions[{{aniCon.popupTime.id}}]"> 
</select> 

Это вызывает ошибку синтаксического анализа здесь: aniCon.timeOptions [{..., значение, как ожидается, не {{..

дело в том, что это значение {{aniCon.popupTime.id}} рассматривается как 3 при загрузке страницы и затем HTML правильно: aniCon.popupTime = aniCon.timeOptions[3]

Поэтому я хочу проигнорируйте эту ошибку разбора.

+1

Как правило, вы должны инициализировать значения в своем контроллере, тогда вам не придется беспокоиться о разборе через ng-init. – Patrick

ответ

1

Извлеките скобки. Для угловых директив, нет необходимости в использовании выражений

ng-init="aniCon.popupTime = aniCon.timeOptions[aniCon.popupTime.id]"> 

Как @Patrick сказал в комментарии, вы должны переместить код инициализации контроллера.

$scope.aniCon = {}; 
// Get the object values here 
$scope.aniCon.popupTime = $scope.aniCon.timeOptions[$scope.aniCon.popupTime.id];