我有一个使用jhipster生成的应用程序,它有几个视图,弹出窗口显示产品详细信息。我需要从任何视图打开此弹出窗口。弹出窗口实际上是在两个页面中使用angular-route指定父节点,这工作正常,但我需要为应用程序中的任何页面打开它,我认为不是解决方案重复应用程序中每个视图的状态。
答案 0 :(得分:1)
我建议您为打开模态(针对该特定实体)创建模态服务。
目前模态逻辑位于XXX.state.js中,因为这是JHipster使用它的唯一地方。而不是在onEnter中注入模态相关的依赖项,比如
onEnter: ['$stateParams', '$state', '$uibModal', function($stateParams, $state, $uibModal) {
//...
}
你应该将它们注入一个独特的服务,并公开一个open方法,然后将这个服务注入状态,比如
onEnter: ['MyEntityModalService', function(myEntityModalService) {
myEntityModalService.open();
}
通过这些更改,您最初不会更改前端行为,而是将逻辑解耦为服务。正如您现在可以注入状态,您也可以将其注入其他任何地方。