簡體   English   中英

在指令中訪問rootScope

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM