0
我的指令沒有正確插入html。我想我需要在插入它之前編譯html,但我不確定如何做到這一點。我的模板第一次正常工作,但是當它被替換時,ng-click()事件沒有註冊,並且html作爲普通錨定標記進行響應。Angularjs指令編譯
如果有人可以幫助我們瞭解最佳實踐,那麼可能還有一種更清晰的書寫方式。我只是在替換的簽名文本上使用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>