1、$observe()是属性attributes的方法,只能在DOM属性的值发生变化时用,并且只用于directive内。
当需要监听一个包含变量的属性值时attr1="Name:{{name}}",使用attrs.$observe('attr1', function(){...})
2、$watch可以监听expression表达式(函数function或者string字符串),如果是string字符的话会自动解析成函数function。
$watch是scope上的方法,可以在任何存在scope的地方使用:
controller--通过ng-view、ng-contrller、directive controller创建的任何controller
directive--link function
例如:attr1="myModel.some_prop",
在controller中$scope.$watch("myModel.some_prop", function(){...})
在directive中scope.$watch(attrs.attr1, function(){...})或者scope.$watch(attrs['attr1'], function(){...})
如果使用attrs.$observe('attr1'),则只会获取到字符串myModel.some_prop