AngularJS 디렉티브 생성시 require를 사용한 모델 가져오는 방법

myApp = angular.module('app', []);

myApp.directive('test', function(){
return {
require: 'ngModel',
link: function(scope, element, attrs, ngModel){
attrs.$observe('ngModel', function(value){
scope.$watch(value, function(){
// Code
});
});
}
});

scope을 사용한 방법과 장단점이 있습니다. 
특징으로는 반드시 require는 link를 사용하여 ngModel을 사용해야합니다.