Я работаю с AngularJS, и я сгенерировал объект с свойством size
, который содержит массив объектов.ngOptions - значение не определено
var product = [
// ..
sizes: [
{choice: 'one', order: 1},
{choice: 'two', order: 2},
{choice: 'three', order: 3}
]
//..
];
На стороне просмотра я генерировать поле выбора, как:
<select ng-init="size = product.sizes[0]" ng-options="size.choice for size in product.sizes" ng-model="size"></select>
Это работает, но когда я создаю кнопку, чтобы получить текущее выбранное значение выбора возвращает неопределенное: alert($scope.size);
Я продублировал проблему here. Кроме того, только для смеха Я воссоздал одно и то же (?) В другом CodePen here.
Второй работает так, как я хочу, но не первым. Я сделал оба, но я не могу понять, почему второй работает и первый делает.
В качестве альтернативы вы можете использовать ng-show или ng-hide, чтобы избежать создания дополнительной области – Vlad274
@ Влад274, работающий с изменением на 'ng-show'. jw, я думаю, что я действительно не соблюдаю детскую сферу. Можете ли вы создать пример? –
Я предполагаю, что вы можете представить его, как при использовании ng, если вы создаете другой контроллер в этой точке. «Скрытый» угловой контроллер. Поэтому модель размера существует в этом контроллере, а не в вашем «prod» контроллере. Если вы хотите, чтобы «скрытый» контроллер передавал эту модель до вашего «prod» контроллера, вам нужно использовать точечную нотацию, как это рекомендуется угловыми создателями. ng-model должна всегда иметь что-то .somethingelse – jw56578