我在我的项目中使用 Angular-ui,我想实现一个模式窗口。库的大部分组件(http://angular-ui.github.io/bootstrap/ http://angular-ui.github.io/bootstrap/)作为指令实现(如预期)。然而,模态不是——它是作为服务实现的。这导致对控制器中视图的强烈依赖(即控制器需要知道视图使用模态窗口,但不应该是这种情况)。
我的问题是:为什么模态是作为服务实现的,而不是指令?它有什么好处吗?
The $modal
指令非常灵活,通过其 API,它支持:
- 由于控制器控制它的打开时间,因此可以在您想要的任何事件上触发。
- 使用以下命令将数据从控制器传递到对话框中的控制器
resolve
option
- 使用对话框中的任何控制器或模板。
- 通过其接近触发控制器的对话框将数据传回
result
承诺。
虽然这一切都在指令中并非不可能,但我认为实际上只能通过使用大量选项或复杂的对象来实现,无论如何,这些选项或复杂的对象都必须在控制器中构造。
这不是指令的另一个原因是指令通常用于页面中特定位置的内容。模式的设计本身并不附加到页面中的任何元素。
我建议尝试为指令设计一个 API,该指令提供与以下指令相同的功能:$modal
,我怀疑它会揭示使用服务总体上更清晰,而且可能更灵活。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)