Доступ к rootScope в директиве
Я пробовал миллион способов получить доступ к переменной rootScope из этой директивы на основе упругости с нулевой удачей. Вот директива, имея в виду, что $rootScope действительно передается в родительский контроллер.
var elasticui;
(function (elasticui) {
var directives;
(function (directives, rootScope) {
var IndexDirective = (function () {
function IndexDirective() {
var directive = {};
directive.restrict = 'EAC';
directive.controller = elasticui.controllers.IndexController;
directive.link = function (scope, element, attrs, indexCtrl, rootScope) {
console.log("Updated Index: " + $rootScope.esIndex);
indexCtrl.indexVM.index = scope.$eval(attrs.euiIndex);
};
return directive;
}
return IndexDirective;
})();
directives.IndexDirective = IndexDirective;
directives.directives.directive('euiIndex', IndexDirective);
})(directives = elasticui.directives || (elasticui.directives = {}));
})(elasticui || (elasticui = {}));
В другом месте я устанавливаю $rootScope.esIndex в индекс, на который я хотел бы указать, но я получаю "$rootScope не определен". Я попытался установить для свойства scope директивы значение false, попытался настроить наблюдатель на $rootScope.esIndex как часть возвращаемого значения функции ссылки, но, что бы я ни делал, я не могу понять это.
Я думаю, что часть проблемы для меня заключается в том, что эта структура немного загадочна с директивной точки зрения для более молодого человека, которому нужно переварить. Это блок в гораздо большем наборе определений директив, поэтому мне сложно понять.
Любые идеи, как я могу легко получить $rootScope здесь?
Спасибо за тонну заранее!
1 ответ
Видеть больше вашего кода поможет. В частности, когда вы говорите "$rootScope действительно передается". Однако, с этой ограниченной информацией, почему бы вам не попробовать изменить эту строку:
(directives = elasticui.directives || (elasticui.directives = {}));
что-то вроде
(directives = elasticui.directives || (elasticui.directives = {}, rootScope));
На первый взгляд кажется, что ваша самозапускающаяся функция не получила ожидаемого параметра rootScope. Удачи!
редактировать: также
console.log("Updated Index: " + $rootScope.esIndex);
Вероятно, не должно быть знака доллара.
редактировать: комментарии имеют гораздо больше информации!