source

angularjs에서 angular. bind의 용도는 무엇입니까?어디에 쓰나요?

factcode 2023. 10. 21. 10:52
반응형

angularjs에서 angular. bind의 용도는 무엇입니까?어디에 쓰나요?

Angularjs에서 angular.bind의 용도는 무엇입니까?예를 들어 주시기 바랍니다.https://docs.angularjs.org/api/ng/function/angular.bind 에서 이해할 수 없습니다.

Angular.bind는 function.bind부분 기능 적용의 기능성을 결합한 유틸리티 기능입니다.

바인딩(일반적으로 바인딩)은 현재 컨텍스트를 함수에 바인딩하지만 실제로는 나중에 실행한다는 개념입니다.

이것은 다음과 같이 HTTP 통화를 할 때 각도에서 유용할 수 있습니다.$http그리고 약속을 처리하는 것.

$http.get('url').then(angular.bind(this, 
    function(response) { 
        this.response = response; //use this (which is the bound context) 
    });

위의 예에서,this함수 내부는 참조하지 않을 것입니다.this에서$http우리가 명시적으로 하지 않는 한 맥락.bindit. 이것은 (대부분의 일반적인 클래스 지향 언어와는 달리) 컨텍스트의 동적 바인딩 때문에 (콜백에서) 일반적인 자바스크립트 문제입니다.

부분 응용 프로그램은 일부 인수를 이미 통과한 함수를 만들고 싶을 때 사용됩니다.아주 간단한 예:

function add(x, y) { 
    return x + y; 
}

var add10To = angular.bind(this, add, 10);

console.log(add10To(5));
// outputs 15

Angular.bind와 함께 Angular 팀은 이 두 가지를 함께 포장합니다.

이것은 기능 언어의 기반이 되는 고전적인 기능 중 하나입니다.부분적인 기능으로 작업할 수 있게 해줍니다.각도에 따라 달라지는 것이 아니라 자바스크립트에 따라 달라지는 것입니다.대부분의 자바스크립트 유틸리티 라이브러리에는 이 기능도 포함되어 있습니다(예: 밑줄/로다시).

현재 이 기능은 자바스크립트 자체의 일부입니다. (모든 주요 브라우저에서 지원됨 - bind()를 지원하는 브라우저를 참조하십시오.)

설명하자면bind가능합니다. Lodash 문서의 예를 참조하겠습니다(원본 교체)._.bind와 함께angular.bind의견 추가):

//this is a simple function. Note it uses "this" but it's not inside any object.
var greet = function (greeting, punctuation) {
  return greeting + ' ' + this.user + punctuation;
};

//now let's define an object
var object = { 'user': 'fred' };

//now we can create a functions by "binding" the object with the function above and also supplying the "greeting" argument
var bound = angular.bind(object, greet, 'hi');
bound('!');
// → 'hi fred!'

각도의 모든 데이터JS는 $scope 개체의 속성이어야 합니다.이 프레임워크는 개발자가 이에 대해 생각하지 않고 ng 클릭을 후드 아래의 올바른 스코프 개체로 라우팅할 수 있습니다.호출된 함수 내부에서 $scope 개체를 가리킵니다.

<body ng-controller="MainCtrl">
  <p ng-click="clickMe()">Click me</p>
</body>
when clicked the following controller function

app.controller('MainCtrl', function($scope) {
  $scope.clickMe = function() {
    console.log(this === $scope);
  };
});
// prints true

function.bindAngularJs 컨트롤러 코드 안에서 자주 사용되지 않습니다. 컨트롤러 함수 안에서 정의된 함수는 그냥 사용합니다.$scope개체에 연결된 속성 대신 데이터에 액세스할 수 있습니다.링크 함수 내부에 정의된 함수도 스코프 변수와 직접 연동할 수 있습니다.

참조 : http://bahmutov.calepin.co/why-function-bind-matters-little-in-angularjs.html

언급URL : https://stackoverflow.com/questions/30529933/what-is-the-use-of-angular-bind-in-angularjs-where-to-use-it

반응형