如何在angularjs

时间:2016-11-03 17:31:39

标签: angularjs angular-ui-router bootstrap-modal jhipster

我有一个使用jhipster生成的应用程序,它有几个视图,弹出窗口显示产品详细信息。我需要从任何视图打开此弹出窗口。弹出窗口实际上是在两个页面中使用angular-route指定父节点,这工作正常,但我需要为应用程序中的任何页面打开它,我认为不是解决方案重复应用程序中每个视图的状态。

1 个答案:

答案 0 :(得分:1)

我建议您为打开模态(针对该特定实体)创建模态服务。

目前模态逻辑位于XXX.state.js中,因为这是JHipster使用它的唯一地方。而不是在onEnter中注入模态相关的依赖项,比如

onEnter: ['$stateParams', '$state', '$uibModal', function($stateParams, $state, $uibModal) {
   //...
}

你应该将它们注入一个独特的服务,并公开一个open方法,然后将这个服务注入状态,比如

onEnter: ['MyEntityModalService', function(myEntityModalService) {
   myEntityModalService.open();
}

通过这些更改,您最初不会更改前端行为,而是将逻辑解耦为服务。正如您现在可以注入状态,您也可以将其注入其他任何地方。