Я совершенно новый, просто экспериментируя с рамкой AngularJS. Поэтому я не уверен, что подход, который я принял, является лучшим/правильным способом.Цепочки выбора с угловым JS
Я пытаюсь создать 3-х уровневые прикованные ajax заполненные поля выбора, и это отчасти работает, за исключением нескольких проблем.
В моем фактическом коде используется ajax, который находится на заводе, но для скрипки у меня просто есть контроллер, возвращающий результаты из массива.
Demo (с использованием массивов, не АЯКС):http://jsfiddle.net/xxwe1zu8/1/
Вопросы:
- выбирает второй и третий уровень не имеют "выбранный" атрибут - то есть тот, который вы выбираете не выделяется.
- В идеале я бы хотел, чтобы категории верхнего уровня динамически заполнялись при загрузке страницы через ajax (или в этом примере по массиву), используя ту же угловую функцию (например: getSubcategories = function (0, 0) {), а не hardcoded. Категории верхнего уровня имеют родительский знак 0.
Бонус: Может ли 3-я поле выбора отображаться/отображаться только в том случае, если подкатегория возвращается после выбора подкатегории? В действительности большинство подкатегорий не будут иметь подкатегорий.
var myAppModule = angular.module('myApp',[]); myAppModule.controller('SearchCtrl', function($scope) { var self = this; self.subCategories = []; self.getSubcategories = function(parent, level) { theCategories = []; angular.forEach(sub_category[parent], function(idx, val) { theCategories.push({id: val, name: idx}); }); self.subCategories[level] = theCategories; } });
Благодаря
Есть ли причина иметь прерывистый индексы для массива категорий? –