jsfiddle here. 지시어 우선 순위와 터미널 속성을 실험 해 왔습니다. 우선 순위 3, 2 및 1의 세 가지 지시문을 만들었습니다. 기본 지시문 (가장 높은 우선 순위, 우선 순위 : 3)에는 버튼을 만드는 템플릿이 있으며 단추를 클릭하면 지시문의 컨트롤러에 대한 메서드가 호출됩니다. 우선 순위 2 지시문에 terminal : true를 넣을 때까지 모든 것이 잘 작동합니다. 버튼이 작동을 멈추게하는 이유가 있습니다. 주 지시문 (우선 순위 3)은 훌륭하게 렌더링되지만 버튼을 클릭해도 아무런 효과가 없습니다. 다시 말하지만, 여기에 jsfiddle이며, 여기에 지침에 대한 코드입니다 :AngularJS 터미널 지시문이 작동하지 않습니다.
이myApp = angular.module('myApp', [])
.directive('greeting', function() {
return {
restrict: 'E',
replace: true,
priority: 3,
template: "<button class='btn' ng-click='sayHello()'>Say Hello</button>",
controller: function($scope) {
var greetings = ['hello'];
$scope.sayHello = function() {
alert(greetings.join());
}
this.addGreeting = function(greeting) {
greetings.push(greeting);
}
}
};
})
.directive('finnish', function() {
return {
restrict: 'A',
priority: 2,
terminal:true,
require: 'greeting',
link: function(scope, element, attrs, controller) {
controller.addGreeting('hei');
}
};
})
.directive('hindi', function() {
return {
restrict: 'A',
priority: 1,
require: 'greeting',
link: function(scope, element, attrs, controller) {
controller.addGreeting('नमस्ते');
}
};
});
가 페이지의 HTML은 다음과 같습니다
<body ng-app="myApp">
<greeting finnish hindi />
</body>
그건 완전히 의미가 있습니다! 그걸 파고 주셔서 감사합니다! –