anagularJs 명령의 controller,link,compile는 뭐가 달라요?

3825 단어
/directives.js exampleDirective  
phonecatDirectives.directive('exampleDirective', function() {  
    return {  
        restrict: 'E',  
        template: '

Hello {{number}}!

', controller: function($scope, $element){ $scope.number = $scope.number + "22222 "; }, link: function(scope, el, attr) { scope.number = scope.number + "33333 "; }, compile: function(element, attributes) { return { pre: function preLink(scope, element, attributes) { scope.number = scope.number + "44444 "; }, post: function postLink(scope, element, attributes) { scope.number = scope.number + "55555 "; } }; } } }); //controller.js dtControllers.controller('directive2',['$scope', function($scope) { $scope.number = '1111 '; } ]); //html

실행 결과:
 Hello 1111 22222 44444 55555 ! 

결과에서 알 수 있듯이 컨트롤러가 먼저 실행되고,compile가 실행되고,link가 실행되지 않습니다.
상례의compile 주석 지우기
//        compile: function(element, attributes) {  
//            return {  
//                pre: function preLink(scope, element, attributes) {  
//                    scope.number = scope.number + "44444 ";  
//                },  
//                post: function postLink(scope, element, attributes) {  
//                    scope.number = scope.number + "55555 ";  
//                }  
//            };  
//        }  

실행 결과:
Hello 1111 22222 33333 ! 

결과에서 알 수 있듯이 컨트롤러가 먼저 실행되고, 링크가 나중에 실행되며, 링크와compile가 호환되지 않습니다.
다음으로 전송:https://www.cnblogs.com/xuepei/p/5970477.html

좋은 웹페이지 즐겨찾기