programing

AngularJS 제어기 및 방법

closeapi 2023. 10. 13. 22:15
반응형

AngularJS 제어기 및 방법

저는 컨트롤러에 대해 몇 가지 질문이 있는 angularjs 초보자입니다.
컨트롤러의 예시는 다음과 같습니다.

function exampleController($scope)
{
   $scope.sampleArray = new Array();

   $scope.firstMethod = function()
   {
      //initialize the sampleArray
   };

   $scope.secondMethod = function()
   {
      this.firstMethod();
   };
};

제 질문은 다음과 같습니다.

  • 전화하는 방법firstMethod부터secondMethod? 제가 한 방법이 맞습니까, 아니면 더 나은 방법입니까?
  • 컨트롤러용 컨스트럭터를 생성하려면 어떻게 해야 합니까?sampleArray를 초기화하는 첫번째 Method를 호출하는 두번째 Method를 호출해야 합니까?
  • html 코드에서 특정 메소드를 호출하려면 어떻게 해야 합니까?ng-initialize를 찾았는데 어떻게 사용하는지 모르겠어요.

선언한 방식과 동일하게 메소드를 호출합니다.

$scope.secondMethod = function() {
  $scope.firstMethod();
};

HTML에서 다음과 같이 호출할 수 있습니다.

<span>{{secondMethod()}}</span>

그러나 컨트롤러에는 "컨스트럭터"가 없습니다. 일반적으로 기능과 동일하게 사용됩니다.그러나 컨트롤러 기능에 초기화를 넣을 수 있으며, 생성자처럼 초기화가 실행됩니다.

function exampleController($scope) {
  $scope.firstMethod = function() {
    //initialize the sampleArray
  };

  $scope.secondMethod = function() {
    $scope.firstMethod();
  };

  $scope.firstMethod();
}

첫 번째 방법은 $scope을 사용하여 호출합니다.

그렇게

   $scope.secondMethod = function()
   {
      $scope.firstMethod();
   };

두 번째 질문에서 무슨 뜻인지 잘 모르겠습니다.

세 번째 질문의 경우, 메소드를 컨트롤러에서 자동으로 "onload(온로드)" 실행하게 하거나, 프론트엔드 각도 바인딩을 통해 실행할 수 있습니다.

예: 자동 실행

function exampleController($scope)
{
   $scope.sampleArray = new Array();

   $scope.firstMethod = function()
   {
      //initialize the sampleArray
   };

   $scope.secondMethod = function()
   {
      $scope.firstMethod();
   };


   $scope.secondMethod(); // runs automatically.

};

바인딩 시 실행

<div ng-controller="ExampleController"> <!-- example controller set up in namespace -->

<button class="btn" ng-click="secondMethod()">Run Second Method</button>

</div>

@Josh와 @Christopher는 이미 당신의 질문을 다루었으므로, 다시는 말씀드리지 않겠습니다.

ng-initialize를 찾았는데 사용법을 모르겠어요 :-(

명령이 실제로 ng-init입니다.때때로(예: 응용프로그램의 일부에서 Angular를 사용하기 시작할 때 여전히 뷰/HTML 페이지 서버 측을 동적으로 생성해야 하는 경우) ng-init는 때때로 초기화하는 데 유용한 방법이 될 수 있습니다.예.,

<div ng-controller="ExampleCtrl">
   <form name="myForm">
     <input type="text" ng-model="folder" ng-init="folder='Bob'">

ng-init: 레일 + angularjs 값을 편집할 때 텍스트 필드로 로드하는 ng-init를 사용해야 했던 예는 다음과 같습니다.

컨트롤러는 싱글턴이 아니라는 점도 언급하고 싶습니다.ng-view를 사용하는 경우 다른 경로로 이동할 때마다 새로운 컨트롤러가 생성됩니다.떠나려는 보기와 관련된 컨트롤러가 파괴되고, 떠나려는 보기와 관련된 컨트롤러가 실행됩니다.따라서 컨트롤러의 "초기화 코드"는 앱이 실행되는 동안 여러 번 실행될 수 있습니다.예를 들어, 페이지를 방문하고 다른 곳으로 갔다가 돌아온 경우 동일한 컨트롤러 기능(및 "초기화 코드")이 두 번 실행됩니다.

어떤 것이 진정으로 한 번 실행되기를 원한다면, 그것을 서비스에 넣거나 모듈의 config() 또는 run() 메서드에 넣으십시오. (서비스는 단일 요소이므로 각 서비스는 한 번만 인스턴스화되므로 서비스의 초기화 코드는 한 번만 실행됩니다.)

언급URL : https://stackoverflow.com/questions/14407999/angularjs-controller-and-methods

반응형