sourcetip

Angular 지시사항이 있는지 확인합니다.

fileupload 2023. 9. 20. 20:39
반응형

Angular 지시사항이 있는지 확인합니다.

우리는 Angular 프로젝트에서 동적 지시어를 중심으로 많은 작업을 하고 있는데, 한 가지 좋은 방법은 객체의 유형에 따라 특정 지시어를 위임함으로써 유사한 객체의 여러 유형(예: 메시지, 사용자, 주석 등)을 나열할 수 있는 일반적인 지시어를 갖는 방법이었습니다.

우리는 이 지시를 '지시라고 부릅니다.object-list그리고 우리가 제대로 작동할 수만 있다면 여러 가지 다른 지시사항들을 위임할 것입니다.

우리가 다루어야 할 중요한 문제는 이것이 지시하는 지 여부입니다.object-list지시가 우리 시스템에 존재합니다.저희가 지금까지 확인해온 방법은$compile대상 지시에 반하여, 범위에 연결하고, HTML 내용을 확인합니다(예:var tmpElement = $compile('<div my-message'></div>')(scope);). 이것은 대상 지시문에 대한 템플릿이 참조될 때 작동하는 것으로 보입니다.template옵션이지만, 대신에 우리가 A를 가리키려고 할 때.templateUrl, HTML 내용이 비어 있습니다.

여기 플렁커가 있습니다.templateUrl제자리에 접근(작동하지 않음)댓글을 달아주시고 댓글을 달아주시면 됩니다.template경고가 표시되도록 줄을 섭니다.

http://plnkr.co/edit/wD4ZspbGSo68v4eRViTp

지시의 존재를 확인하는 다른 방법이 있습니까?인정할게요, 이건 좀 어색한 것 같아요.

사용가능$injector.has제공자 또는 인스턴스가 존재하는지 확인합니다.

app.directive('objectList', function ($compile, $injector) {
  return {
    template: 'OK',
    link: function (scope, element, attrs) {
      var exist = $injector.has('myMessageDirective');
      ...
    }
  };
});

언급URL : https://stackoverflow.com/questions/18753081/check-if-an-angular-directive-exists

반응형