Scope的定义大致如下(极简版):
// Generated by CoffeeScript 1.7.1
(function() {
var Scope;
Scope = (function() {
function Scope() {
this.$$watchers = [];
}
Scope.prototype.$watch = function(watcher, listener) {
return this.$$watchers.push({
watchFn: watcher,
listenrFn: listener
});
};
Scope.prototype.$digest = function() {
return this.$$wathcers.forEach(function(watcher) {
return watcher.watchFn();
});
};
return Scope;
})();
}).call(this);
在Scope外定义的内容没法watch和digest。
——————————————————————————9.25补充
楼主后来问的问题就跟angular无关了,属于变量作用域的问题。匿名函数内的定义的变量只在该函数内起作用。