我定义了一个控制器及其功能:
myApp.controller "SomeCtrl", ($scope) ->
@go = (text) ->
console.log(text)
@go2 = () ->
??go('test')
“???” 是我在挣扎。
如果我将这些函数分配给 $scope,那么可以只使用 $scope.go() 。在这种情况下我怎样才能达到同样的效果?
我定义了一个控制器及其功能:
myApp.controller "SomeCtrl", ($scope) ->
@go = (text) ->
console.log(text)
@go2 = () ->
??go('test')
“???” 是我在挣扎。
如果我将这些函数分配给 $scope,那么可以只使用 $scope.go() 。在这种情况下我怎样才能达到同样的效果?
不知道为什么它不适合你。如果我使用纯 Javascript,它可以工作。这是一个小提琴:http: //jsfiddle.net/dafoo/K7aPq/2/
function MyCtrl($scope) {
function foo1 (argument) {
console.log('foo1');
console.log(argument);
};
function foo2 () {
console.log('foo2');
foo1('test');
};
foo2();
}
这个问题特别发生在 AngularJS 中,在控制器和指令中。不知道为什么他们选择劫持this
,当有各种依赖注入选项时......矫枉过正。