angularjs 1.x 사용자 정의 지령의 컨트롤러와 지령 간의 통신
//html
<div ng-controller="MyCtrl">  
      <loader howToLoad="loadData()"> loader>  
div>  // 
var myModule = angular.module("MyModule", []);    //controller
myModule.controller('MyCtrl', ['$scope', function($scope){  
    $scope.loadData=function(){  
        console.log(" ...");  
    }  
}]);    myModule.directive("loader", function() {  
    return {  
        restrict:"AE",//Element,Attribute  
        scope: true,// , scope
        link:function(scope,element,attrs){
            // 3 :
            //scope.loadData(); // 1
            //scope.$apply("loadData()");  // 2
            setTimeout(function(){
                scope.$apply(attrs.howtoload());// 3, 
            })
        }  
    }   
});    명령에서 scope.$를 통해apply는 컨트롤러의 방법을 호출하는 데 이 세 가지 방식을 사용할 수 있습니다.
명령의 속성 scope가true와false일 때 호출될 수 있습니다.scope가 {}일 때 명령의 속성 scope 값을 호출하는 데 성공하지 못합니다.
2. 컨트롤러에서 지령에 메시지 보내기
//html
<div ng-controller="MyCtrl">  
      <loader howToLoad="loadData()"> loader>  
div>  //controller
myModule.controller('MyCtrl', ['$scope', function($scope){  
    $scope.loadData=function(){  
        $scope.$broadcast('approvalRecord.reloadData');// 
    }  
}]);    myModule.directive("loader", function() {  
    return {  
        restrict:"AE",//Element,Attribute  
        scope: true,// , scope
            function reloadData(){
                //TODO
            }
            // 
            scope.$on('approvalRecord.reloadData', function(){
                reloadData();
            });
        }  
    }   
});    컨트롤러가 지령 안의 방법을 호출하면 방송을 보내고 지령 안에서 방송을 수신한 다음에 리셋 방법에서 지령 중의 방법을 실행할 수 있다
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.