0
지시문이 html을 올바르게 삽입하지 않습니다. 삽입하기 전에 HTML을 컴파일해야한다고 생각하지만 정확히 어떻게해야하는지 잘 모르겠습니다. 내 템플릿은 처음에는 잘 작동하지만, 대체되면 ng-click() 이벤트가 등록되지 않고 html이 일반 앵커 태그로 응답합니다.Angularjs 지시어 컴파일
누군가가 평가할 수있는 모범 사례를 도울 수 있다면이 방법을 쓰는 것이 더 깨끗한 방법 일 것입니다. 난 그냥 분명히 테스트 목적을 위해 교체 된 signout 텍스트에 대한 openSigninDialog() 이벤트를 사용하고 있습니다.
지침
app.directive('navbarright', function() {
return {
restrict: "A",
template: "<li><a href='#'>New</a></li>"+
"<li><a href='' ng-click='openSigninDialog()'>Sign In</a></li>",
link: function (scope, elem, attrs) {
scope.$on('event:auth-signinConfirmed', function() {
elem.html("<li><a href='#'>New</a></li>"+
"<li><a href='' ng-click='openSigninDialog()'>Sign Out</a></li>");
});
}
}
});
컨트롤러
app.controller('NavbarRightCtrl', function($scope) {
console.log('signin event occuring');
$rootScope.$broadcast('event:auth-signinConfirmed');
});
HTML
<ul class="nav pull-right" ng-controller="NavbarRightCtrl" navbarright>
</ul>