Angularjs 无法使用fat箭头访问作用域
我可能遗漏了一些关于范围界定的基本内容 任何人都可以解释发生了什么以及如何从Angularjs 无法使用fat箭头访问作用域,angularjs,angularjs-directive,scope,coffeescript,Angularjs,Angularjs Directive,Scope,Coffeescript,我可能遗漏了一些关于范围界定的基本内容 任何人都可以解释发生了什么以及如何从范围内的外部范围正确访问对象ngModelController。$watch 下面是一个例子: myDirModule = angular.module("myDir", []) .directive "myDir", ($compile) -> restrict: "A" require: "ngModel" scope: myParam: "=ngModel" compile: (element
范围内的外部范围正确访问对象ngModelController
。$watch
下面是一个例子:
myDirModule = angular.module("myDir", [])
.directive "myDir", ($compile) ->
restrict: "A"
require: "ngModel"
scope:
myParam: "=ngModel"
compile: (element, attrs) ->
// ... more code here ...
post: (scope, element, attrs, ngModelController) ->
// ... more code here ...
// ngModelController defined here :D
scope.$watch 'myParam', (newValue, oldValue) =>
// ngModelController NOT defined here :(
将postlink函数直接返回到compile函数:
myDirModule = angular.module("myDir", [])
.directive "myDir", ($compile) ->
restrict: "A"
require: "ngModel"
scope:
myParam: "=ngModel"
compile: (element, attrs) ->
# more code here
# return postlink function directly
(scope, element, attrs, ngModelController) ->
console.log(ngModelContoller)
或者将pre和post函数作为散列返回
myDirModule = angular.module("myDir", [])
.directive "myDir", ($compile) ->
restrict: "A"
require: "ngModel"
scope:
myParam: "=ngModel"
compile: (element, attrs) ->
# more code goes here
# return pre and post as a hash
pre: (scope, element, attrs, ngModelController) ->
console.log(ngModelController)
post: (scope, element, attrs, ngModelController) ->
console.log(ngModelContoller)
还要确保使用->
,而不是=>