【发布时间】:2016-03-23 03:34:53
【问题描述】:
我已经尝试了一百万种方法来从这个基于 elasticui 的指令中访问 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 is not defined”。我尝试将指令的范围属性设置为 false,尝试在 $rootScope.esIndex 上设置一个观察者作为链接函数返回值的一部分,但无论我做什么,我似乎都无法弄清楚。
我认为对我来说问题的一部分是,从指令的角度来看,这个结构有点神秘,对于一个新的有角的人来说是消化的。这是一组更大的指令定义中的一个块,所以我很难掌握。
有什么想法可以在这里轻松获取 $rootScope 吗?
提前感谢 TON!
【问题讨论】:
-
您绝对应该在这里提供更多代码,但我会说乍一看您将
rootScope传递给函数,而不是$rootScope。这可能是问题的一部分。
标签: javascript angularjs elasticui