Мне поручено создать набор «карт», как на Google, на одном и других подобных сайтах, используя AngularJS для панели инструментов. Каждая карта имеет независимую функциональность от остальных, и все они должны появиться, как только их данные будут возвращены из API. В будущем мы собираемся разрешить привязку этих карт к панели управления, а также заказ, который будет настроен пользователем.Угловая директива - Dynamic Controller
Я создал директиву «card-dealer», которая будет содержать ng-repeat для каждой карты в массиве объектов карты. Каждая из этих карт должна иметь свой собственный динамический шаблон и контроллер, в котором я столкнулся с проблемой. Мне удалось выяснить, как пройти динамический templateUrl
, но контроллер - это совсем другая история. Я все, но получил он понял, имитируя, что я смотрел на Pluralsight видео, я просто должен быть в состоянии передать card.controller
переменные в директиве «Ctrl» атрибут, как это:
<card-dealer ng-repeat="card in cards" card="card" ctrl="{{card.controller}}"/>
Однако переменная ctrl='{{card.controller}}'
в директиве не анализируется до того, как она будет отправлена в директиву. В директиве я устанавливаю контроллер динамически, устанавливая controller: '@'
и name: 'ctrl'
. Это рассматривается в элементе для атрибута с именем «ctrl» и возвращает его значение как имя контроллера. Этот метод работает, когда я ввожу имя строки директивного контроллера вместо использования переменной {{card.controller}}
, но просто ввод строки не является динамическим.
Мне нужна переменная, которую нужно разобрать до того, как она достигнет директивы, чтобы она искала правильное имя контроллера. Я создал скрипт JS, чтобы продемонстрировать свою проблему: http://jsfiddle.net/kPdCk/. Это должно возвращать два окна оповещения, по одному из каждого контроллера. Если вы запустите это сейчас, вы увидите в журнале консоли, что он пытается найти контроллер с именем переменной вместо значения переменной.
Пожалуйста, помогите! Это важно для будущего всей нашей панели инструментов, как только мы выясним, как передать имя динамического контроллера, мы будем золотыми. Заранее спасибо!!!