【发布时间】:2015-01-26 12:52:31
【问题描述】:
我正在尝试使用带有 angularjs 和 twitter 引导程序的自定义 html 创建一个弹出框。由于此功能尚未在 angular-ui 中实现,因此我在 angular 指令中使用引导方法。
我在指令内编译模板并将编译后的元素附加为弹出框的内容。
它工作正常,但是当触发 ng-click 时,回调内部的 $event 是未定义的。我需要这个 $event(通过$event.target)来获取元素,我将隐藏它并隐藏它。
代码很简单:
mymodal.controller('MainCtrl', function ($scope) {
$scope.test = function(e) {
console.log('test');
};
});
mymodal.directive('testD', function ($compile) {
return {
restrict: 'EAC',
template: "<a href='#' id='pop-over-link'>Show pop-over</a>",
scope: {test: '&'},
link: function(scope, element, attrs) {
var templateData =
"<button class='btn btn-default btn-sm cancel' ng-click='test($event)'>Cancel</button>";
var compliedData = $compile(templateData)(scope);
$(element)
.popover({html: true,
content: compliedData
})
.on('click', function(e) {
e.preventDefault();
return true;
});
}
}
});
JsFiddle:http://jsfiddle.net/nq5Lnvd8/
我做错了什么,我该如何解决?
【问题讨论】:
标签: javascript jquery angularjs twitter-bootstrap