动态地将小部件显示到模态中
Display a widget into a modal dynamically
我有一个有大量小部件的Angular.js站点。在本例中,小部件是一个template.html和一个controller.js,它们被设置为angular模块。
这些小部件在仪表板上使用,用户可以移动它们,小部件也可能需要出现在模态弹出框中,其他工具可能通过将小部件拉入他们的工具与我们集成。
目前有26个情态动词,而且还在增加。
我怎样才能动态地创建一个模态,这样我就不必在每个页面中包含模态了?
是否有办法使它们全局?此外,我需要"加载"一个小部件(模板和控制器)到模块中,因为所有模块将具有相同的结构,但可能需要自定义的页眉,正文和页脚。
通常情况下,我会把小部件变成指令,但我所在的团队已经让小部件在仪表板上工作了。
注:我们正在使用$stateProvider和Angular-UI Bootstrap模式。
你会想要设置一个全局服务来为你做这件事,在那里你可以传递任何你需要的东西给模态,让它工作所以像这样-
.service(metadata.componentName, [
'$modal',
'$q',
function($modal, $q) {
return {
confirm: function confirmModal(options) {
return $q(function(resolve, reject) {
$modal.open({
size: 'sm',
template: '<div class="modal-body">' + options.message + '</div><div class="modal-footer"><button class="btn btn-primary" ng-click="ok()">OK</button><button class="btn btn-warning" ng-click="cancel()">Cancel</button></div>',
controller: modalCtrlRJS.componentName
}).result.then(resolve, reject);
});
},
info: function infomModal(options) {
return $q(function(resolve, reject) {
$modal.open({
size: 'sm',
template: '<div class="modal-body"> <button type="button" class="close" ng-click="ok()"><span>×</span></button>' + options.message + '</div>',
controller: timeoutModalCtrlRJS.componentName
}).result.then(resolve, reject);
});
},
error: function errormModal(options) {
return $q(function(resolve, reject) {
$modal.open({
size: 'sm',
template: '<div class="modal-body"> <button type="button" class="close" ng-click="ok()"><span>×</span></button>' + options.message + '</div>',
controller: timeoutModalCtrlRJS.componentName
}).result.then(resolve, reject);
});
}
};
}
所以这些都是简单的模态,这里的技巧是你可能会使用templateUrl
而不是模板,并传入你自己的控制器。我在这里使用requires语法传递控制器。类似这样的东西应该可以满足你的需要,然后你只需调用yourService.whateverModal
并传递你需要的参数。你也可以在那个服务调用的bootstrap-ui模态上传递任何你需要的额外设置,这取决于你需要自定义它的程度。
只是一个额外的注释-我在$q
中包装了这些,所以当你调用这个模态服务时,你可以选择使用承诺。例如,当模型关闭或取消时,我使用它来触发不同的事件。
相关文章:
- 有没有比在app.js上绑定模块名称更好的方法来动态加载视图模型和视图以显示模态
- 如何通过所选索引(AngularJS)在模态弹出窗口中显示数据
- bootstrap消除模态并显示另一个模态
- React.js中显示了模态时如何执行某些操作
- 在页面上显示超过 1 个的模态框
- 如何在单击/接受/确认按钮后不再显示模态
- 如何在模态助推器中显示计算结果(JS)
- 如何将一个模态放在一边-显示其他模态(像..这样的向导)
- 限制字符串中显示的字符数,但在没有php的情况下以模态显示同一字符串中的所有字符
- 如何从url中显示模态内部的信息
- 在下拉列表选择中显示模态
- 带有黑色禁用背景的引导模态显示
- NgAnimate - 由于 NGAnimate,我的模态显示隐藏不起作用
- 反应/reux + 引导,使组件的模态显示唯一
- 在模态显示后在jquery中调用相同的函数
- Bootstrap:使用模态显示动态数据时出现问题
- 数据表后面的模态显示
- 在模态显示之前执行一个脚本标签
- 当模态显示时添加模糊类,当模态隐藏时删除
- 如何获得"这个“;背景图像's的url使用“$event.target”;以离子模态显示