저는 AngularJS에 대한 경험이 있고 웹에서이 지시어를 보았습니다.하지만 이전에 본 적이 없으며 그 내용을 이해할 수 없습니까? 누구든지 도와 줄 수 있습니까?AngularJS :이 지침은 무엇을하고 있습니까?
특정 질문 : 지시 사항의 서명이 조금이라도 이해되면 종속성 주입을 수행해야합니다. 하지만 내가 고민하는 것은 다음과 같습니다. $ injector가 배열로 전달되면 함수에서 매개 변수로 전송되는 이유는 무엇입니까? 즉 function ($ injector); 다른 말로하면 왜 두 개의 $ injector가 있습니까? 배열에서 $ injector를 보내지 않으면 작동하지 않습니다.
또한이 지시문에 컨트롤러가 어떻게 포함되어 있습니까? 언제 그러한 컨트롤러를 정의합니까?
또한 일반적으로 아래 코드에서 $ 접두어로 범위를 볼 수 있습니다. $ 없이는 어떻게 작동합니까?
여기를 더 읽고 설명하는 링크는 유용 할 것입니다. 이 같은 기능, 즉 기능 ($ 인젝터)의 파라미터로서 전송되는 이유
.directive('mycomp', [
'$injector', function($injector) {
var $builder, $compile, $drag;
$builder = $injector.get('$builder');
$drag = $injector.get('$drag');
$compile = $injector.get('$compile');
return {
restrict: 'A',
scope: {
component: '=mycomp'
},
controller: 'mycompController',
link: function(scope, element) {
scope.copyObjectToScope(scope.component);
$drag.draggable($(element), {
mode: 'mirror',
defer: false,
object: {
componentName: scope.component.name
}
});
return scope.$watch('component.template', function(template) {
var view;
if (!template) {
return;
}
view = $compile(template)(scope);
return $(element).html(view);
});
}
};
}
])
매우 유용합니다. 잘 설명해 주셔서 감사합니다. 지시문에 컨트롤러를 삽입 할 때 더 복잡한 내용에 대한 좋은 링크를 제안 할 수 있습니까? (마지막 단락의 설명을 뒷받침 해줄 수 있습니다. – joatmom9
어쩌면 여기에 : http://www.bennadel.com/blog/2446-using-controllers-in-directives-in-angularjs.htm 아주 일반적이지 잘 문서화 된 것은 아닙니다 : [[ – domakas