Показать сообщение отдельно
  #26 (permalink)  
Старый 03.06.2013, 00:34
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

Небольшой опыт демонстрирующий порядок инициализации директив.
важно
если используешь compile функция link несработает
если compile не использовать то сначало сработает controller зетем link
Если нечего не путаю то link это аналог compile post

В укороченной записи срабатывает именно link
myApp.directive('demo',function(){                       
      return function(){
         //я линк
     }
});


собственно сам опыт
<!doctype html>
<html ng-app="myApp">
  <head>
    <script src="http://code.angularjs.org/1.1.5/angular.min.js"></script>
    <script language="javascript" type="text/javascript">
 
      //Обьявим модуль
      var myApp=angular.module('myApp', []);

	  //создадим дерективу
      myApp.directive('demo',function(){                        
        return {
			//значит что это элемент, тоесть демо <demo>
			restrict:"E",

			//здесь можно установить связь атрбутов со свойствами scope
			scope:{},

			compile:function(){				
				alert("compile");
				return{
					pre:function($scope, $element, $attrs, $controller){
						alert('pre');
					},
					post:function($scope, $element, $attrs, $controller){
						alert('post');
					}
				}
			},
			link:function($scope,el,attrs,ctrl){
				alert("link");
			},

			controller:function($scope){
				alert("controller");
				$scope.test="test";
			},
			template:"{{test}}{{test}}"
		}          

      });
    </script>
  </head>
  
  
  <body >    
    <demo>{{test}} </demo>
  </body>
   
</html>
__________________
Лучше калымить в гандурасе чем гандурасить на колыме

Последний раз редактировалось DjDiablo, 03.06.2013 в 00:59.
Ответить с цитированием