如果我的链接功能中有一个功能,我该如何访问范围变量?它似乎在主链接函数中工作正常,但是一旦我尝试在链接中创建另一个函数(例如,使用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."
};
};
};
});
我尝试过的事情:
创建我想要变量的函数,例如
var func = function() {scope.message = "Hello"}
然后是JQLite代码
myDiv.on('click', func)
但我无法判断这是否有效,因为范围未定义,或出于其他原因。
创建我想要一个范围变量的函数,例如
scope.func = function() {scope.message = "Hello"}
myDiv.on('click', scope.func())
但是(这是奇怪的一点)在这种情况下它只是执行函数,而不是等待点击myDiv。
谷歌搜索。我找到了一个旧的stackoverflow问题没有任何好的答案:( (How to access scope in a function inside link function in angularjs directive?)
现在我被卡住了。有人可以提供指导吗?这只是AngularJS的一个事实,没有解决方法吗?