在链接功能中访问功能范围

时间:2015-07-10 04:57:49

标签: jquery angularjs

如果我的链接功能中有一个功能,我该如何访问范围变量?它似乎在主链接函数中工作正常,但是一旦我尝试在链接中创建另一个函数(例如,使用JQLite),我就不能再访问该范围了。

.directive('myDir', function() {
    return {
       restrict: 'E',
       templateUrl: 'myURL',
       link: function(scope, element, attrs) {
            //scope accessible here
            scope.dothis = function() {
               scope.message = "I can see the scope!"
            };

            var myDiv = element.find('div')

            myDiv.on('click', function() {
                //scope not accessible here!
                scope.message = "I won't change message because I see no scope."
            };
         };
     };
   });

我尝试过的事情:

  1. 创建我想要变量的函数,例如

    var func = function() {scope.message = "Hello"}
    

    然后是JQLite代码

    myDiv.on('click', func)
    

    但我无法判断这是否有效,因为范围未定义,或出于其他原因。

  2. 创建我想要一个范围变量的函数,例如

    scope.func = function() {scope.message = "Hello"}
    myDiv.on('click', scope.func())
    

    但是(这是奇怪的一点)在这种情况下它只是执行函数,而不是等待点击myDiv。

  3. 谷歌搜索。我找到了一个旧的stackoverflow问题没有任何好的答案:( (How to access scope in a function inside link function in angularjs directive?

  4. 现在我被卡住了。有人可以提供指导吗?这只是AngularJS的一个事实,没有解决方法吗?

0 个答案:

没有答案