'미리보기'모드에서 지시어 세트를 일시적으로 제거/대체/덮어 쓰는 방법이 있는지 알아 내려고하고 있습니다.모듈에서 지시문을 제거하십시오.
우리는
angular.module('myModule', []);
지시어가에 포함되는 모듈 (들), 예컨대을 : 제거 시도했지만 지시어가 여전히 활성화되어 있습니다.
아무도 도와 줄 수 있습니까?
'미리보기'모드에서 지시어 세트를 일시적으로 제거/대체/덮어 쓰는 방법이 있는지 알아 내려고하고 있습니다.모듈에서 지시문을 제거하십시오.
우리는
angular.module('myModule', []);
지시어가에 포함되는 모듈 (들), 예컨대을 : 제거 시도했지만 지시어가 여전히 활성화되어 있습니다.
아무도 도와 줄 수 있습니까?
다른 방법으로 각 지시문에 미리보기 모드를 적용하는 것이 좋습니다. 현재 상태가 미리보기인지 '라이브'인지를 나타내는 속성을 전달하고 ng-switch를 사용하여 지시문 템플릿의 조건을 지정합니다.
맛은 다양하지만, 즉각적인 지시문을 다시 정의하는 것보다 읽기 쉬운 방법이라고 생각합니다.
내부적으로 AngularJS와 지시어 이름에 접미사를 추가하여, 공장에서 지시을 만듭니다. 따라서 공장을 noop
공장으로 대체하여 지시문을 비활성화 할 수 있습니다.
var noopDirective = function() { return function() {}; };
if (previewMode) {
// Disable ngPaste directive
angular.module('myModule')
.factory('ngPasteDirective', noopDirective);
}
이것이 마지막으로 실행 된 코드인지 확인하십시오.
그러나 이것은'myModule' 모듈의 지시문이 아니라'ngPaste' 지시문을 전체적으로 비활성화합니다. 예를 들어,'mod2' 모듈에'ngPaste' 지시자를 정의했다고 가정합니다. 그런 다음, 위의 코드는'myModule'의'ngPaste' 지시자뿐만 아니라'mod2'의'ngPaste' 지시어도 비활성화 할 것입니다. 어떻게 한 모듈에서'ngPaste' 지시자 만 사용하지 못하게 할 수 있습니까? (그리고 나머지 기능들은 그대로 유지할 수 있습니다. BTW, 비활성화하려는 지시문은 수정 된 버전을 유지하고 싶지 않은 대형 타사 라이브러리에 있습니다. – Rockallite
불행히도 우리는 많은 지시문을 가지고 있으며 모든 스위치 논리를 반복 할 것입니다. 모든 것을 한 곳에서 처리하는 것이 더 깨끗해 졌을 것입니다. –
흠. 알았어. 대체 (미리보기 모드) 버전이 고정적입니까? 지시어 템플릿의 위치로 게임을하면이 작업을 수행 할 수 있습니까? (예 : directive 정의에서 templateUrl을 사용하여 동적 경로 만들기) –
해당 솔루션의 작동 방식을 확인할 수 있지만 지시문을 멀리두고 다시 가져 오는 것보다 훨씬 많은 노력이 필요합니다. –