격리 된 범위를 사용할 때 지시문에서 컨트롤러의 함수를 호출합니까?

아산 아 유브

Controllerfrom 함수를 호출하고 싶습니다 Directive. 검증을위한 것입니다. 그러나 격리 된 범위를 사용할 때 Directive에서 호출하는 방법에 대해 약간 혼란 스럽습니다. 다음은 지시어 코드입니다.

App.directive('test',function(){
    return{
    require: "ngModel",
     scope:{
         a:"=",
         b:"=",
         c:'=',
         d:'='
            },
         link: function(scope, element, attributes,modelVal )
            {
            modelVal.$validators.test= function(val)
              {
                return false;
               //isolated scope values will make if condition true or false.
               if(scope.a=="true"){
                //I need to call a function of controller here. But how can 
                //i call that function from directive? this is my problem
                         } 
               }
             scope.$watch("a", function()
               {
                    modelVal.$validate();
                });

         }//end of link function;
      }//end of return;
});//end of directive;

Functioncontroller, 내가 쓸 필요가 없다고 생각합니다 controller code. 내 html에서이 지시문을 다음과 같이 호출합니다.

     <test a="1" b="2" c="3" d="4" ng-model="abc"></test>

난 내에서 어떻게해야 변경됩니다 directive통화에 controller function인을 $scope.testFunction()?

Santhosh V

var module = angular.module('myModule', []);

module.controller('TestController', function($scope){
  $scope.text = 'test';
  
  // Will be invoked from 'test' directive
  $scope.alertMe = function(text){
    alert(text);
  };
});

module.directive('test', function(){
  return {
    restrict: 'E',
    template: '<input ng-model="text" ng-change="onChange(text)" />',
    scope: {
      text: '='
    },
    link: function(scope, elem, attr){
      scope.onChange = function(text){
      
      // Invoking parent controller function
       scope.$parent.alertMe(text);
      }
    }
  }
})
<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
<body>

<div ng-app="myModule" ng-controller="TestController">
 
<test text="text"></test>

</div>
</body>
</html>

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

AngularJS의 격리 된 범위 / 지시문에서 브로드 캐스트를 수신하고 컨트롤러 함수를 호출합니까?

격리 된 범위를 사용하여 지시문에 컨트롤러 메서드 전달

AngularJS에서 격리 된 범위없이 지시문에서 컨트롤러 함수 호출

내 지시문은 격리 범위를 사용하지만 여전히 컨트롤러의 범위에서 데이터를 가져옵니다.

Sails 0.12 청사진에서 일대 다의 중첩 된 경로를 호출 할 때 어떤 컨트롤러 작업이 트리거됩니까?

격리 된 범위 내부의 Angularjs ng-click은 외부 범위에서 함수를 호출합니다.

격리 된 두 지시문간에 컨트롤러를 공유 할 수 있습니까?

"컨트롤러로"구문을 사용할 때 자식 컨트롤러 내의 부모 범위를 어떻게 참조합니까?

격리 된 범위를 사용할 때 AngularJS 지시문이 템플릿에 값을 삽입하지 않음

UISeachController iOS 8을 사용할 때 분리 된 뷰 컨트롤러에 뷰 컨트롤러를 표시하지 않는 것이 좋습니다.

Angular 1.4 지시문의 텍스트 속성에 "@"를 사용할 때 격리 된 범위의 값을 바꾸는 방법은 무엇입니까? (Angular 1.3에서 작동)

지시어의 컨트롤러를 사용할 때 지시어에서 컨트롤러 메서드를 호출하십시오.

지시문 격리 범위에서 '&'대신 '='를 사용할 수 있습니까?

컨트롤러에서 격리 된 범위 변수를 수정하면서 격리 된 상태로 유지하는 방법은 무엇입니까?

제시된 뷰 컨트롤러가 해제 된 후 메인 컨트롤러의 함수를 호출합니다.

한 요소에 대한 여러 지시문이 격리 된 범위를 공유 할 수 있습니까?

컨트롤러 범위 내에서 지시문을 사용할 때 $ scope를 유지하지 않음

다른 컨트롤러에 정의 된 함수를 어떻게 호출 할 수 있습니까?

경로에서 리소스를 사용할 때 컨트롤러에서 사용자 지정 함수 사용-Laravel

범위 : {}이 지시문에 정의 된 경우 컨트롤러에서 $ scope를 바인딩 할 수 없습니다.

재사용 가능한 지시문을 만들기 위해 컨트롤러에서 격리 된 범위 상속

함수를 사용하지 않고 지시문의 ng-repeat에서 컨트롤러 범위를 수정하는 방법은 무엇입니까?

컨트롤러에서`this` 범위를 사용할 때 $ scope. $ watch 사용

CodeIgniter의 로그인 양식은 잘못된 자격 증명이 제공 될 때마다 URL에서 컨트롤러를 호출합니다.

grails-대화 형 모드에서 컨트롤러에 새 메서드를 추가 할 때 요청 된 리소스를 사용할 수 없습니다.

인수를 사용하여 지시문에서 컨트롤러 함수 호출

AngularJS에서 컨트롤러를 정의 할 때 왜 명시 적 주석을 사용하지 않습니까?

호출된 함수는 참조에 의한 호출을 사용할 때 배열의 주소를 어떻게 해석합니까?

양방향 바인딩이있는 격리 된 범위 지시문은 컨트롤러 범위의 변경 사항을 반영하지 않습니다.