【发布时间】:2013-02-02 21:29:24
【问题描述】:
我有一个创建和管理引导模式对话框的指令。
目前我有指令监视控制器上的布尔值。然后控制器可以将其设置为 true 以显示模式对话框。
这看起来有点乱。有没有更好的办法?
执行中的指令:
<modal trigger="shouldDisplayModal" title="{{modalTitle}}"
message="{{modalMessage}}" positiveclick="okClicked()"
negativeclick="closed()"
positivelabel="Ok" negativelabel="Cancel"/>
指令控制器中的手表:
// watch the trigger value. expected to be boolean
$scope.$watch('trigger',function(newValue, oldValue){
if (newValue)
{
// enable any disabled buttons
modalElem.find('button').removeClass('disabled');
// show the dialog
modalElem.modal('show');
}
else
{
// hide the dialog
modalElem.modal('hide');
}
});
这是一个工作示例:http://jsfiddle.net/rabidgremlin/Ya96z/31/
更新:这是一个修正的示例,它纠正了页面上多个指令的一些问题:http://jsfiddle.net/rabidgremlin/sjbCJ/1/
【问题讨论】:
-
您最终可以查看来自angular-ui.github.com/bootstrap 的
$dialog服务,它允许您轻松打开模式并从控制器中收集值。这个 repo 也有一个用纯 AngularJS 编写的模式,没有 jQuery 或 bootstrap 的 JavaScript 依赖项。 -
嗯,将其实现为服务是一个有趣的想法。我去看看。
标签: angularjs angularjs-directive