[英]accessing rootScope in directive
我已經嘗試了百萬種方法,從這個基於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未定義”。 我嘗試將指令的scope屬性設置為false,嘗試在$ rootScope.esIndex上設置觀察程序,以作為鏈接函數返回值的一部分,但是無論我做什么,我似乎都無法弄清楚。
我認為對我來說部分問題是,從指令的角度來看,這種結構對於一些較新的有角度的人來說,是有點晦澀難懂的。 這是更大范圍的指令定義中的一個障礙,因此對我來說很難理解。
有什么想法可以輕松地在這里獲取$ rootScope嗎?
提前感謝噸!
查看更多代碼將有所幫助。 特別是當您說“ $ rootScope確實已通過”時。 但是,由於信息有限,您為什么不嘗試更改此行:
(directives = elasticui.directives || (elasticui.directives = {}));
像
(directives = elasticui.directives || (elasticui.directives = {}, rootScope));
乍一看,似乎您的自執行函數沒有傳遞期望的rootScope參數。 祝好運!
編輯:也
console.log("Updated Index: " + $rootScope.esIndex);
應該可能沒有美元符號。
編輯:評論有更多信息!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.