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>