我想创建一个confirmation-dialog-header
指令,打开一个Bootstrap UI Modal,将会像这样使用:
<button class="btn" confirmation-dialog-header="Non Working Dialog">
Non Working Dialog
</button>
以下是我尝试做的事情(CoffeeScript):Live Demo
app.directive 'confirmationDialogHeader', ->
restrict: 'A'
link: (scope, element, attrs) ->
$confirmationDialog = $ """
<div modal="confirmationDialog">
<div class="modal-header">
<h4>#{attrs.confirmationDialogHeader}</h4>
</div>
<div class="modal-body">
I want to be hidden by default
</div>
<div class="modal-footer">
<button class="btn" ng-click="confirmationDialog = false">
OK
</button>
</div>
</div>
"""
$(document.body).append($confirmationDialog)
$(element).click ->
scope.confirmationDialog = yes
不幸的是,默认情况下不会隐藏模态,单击按钮似乎没有任何效果。
任何帮助都将不胜感激。
答案 0 :(得分:2)
$compile
它们才能启动AngularJS。scope.$apply
来触发AngularJS评估循环。因此
app.directive 'confirmationDialogHeader', ($compile) -> # 1
$(document.body).append($confirmationDialog)
$compile($confirmationDialog)(scope) # 1
$(element).click ->
scope.confirmationDialog = yes
scope.$apply() # 2
答案 1 :(得分:0)
您应该使用dialog
服务。要隐藏指令中的模态,请使用类<div>
将整个对话框包装在hide,modal,fade
中。