在角度js中将给定状态显示为模态和普通视图

时间:2016-03-05 06:03:47

标签: javascript angularjs modal-dialog angular-ui-router angular-ui

我是AngularJs的新手,我正在努力实现这一独特的场景并面临设计挑战。

我在UI路由器的帮助下在我的应用程序中创建了一个菜单导航栏 可以说我的申请中有3个州代表。

enter image description here

挑战在于我想将状态C显示为模态或普通视图,具体取决于导航方式。
如果从菜单导航状态C,我想将其显示为模态 如果状态C是从应用程序中的特定点导航的,则必须将其显示为带有一些其他元素的普通视图。

我试图仅为模态和常规视图使用单个模板和控制器 我正在使用由角度ui bootstrap提供的$ modal服务 我想补充说,状态C有一个UI网格,可以从休息服务中填充数据。

我尝试过在状态下使用非url params,或使用resolve将param传递给modal并使用单独的模块控制器,但不知道它是否是正确的方法而不会导致代码冗余。

如果有人能指出我正确的方向,我将不胜感激 我很想发布代码,但此时我更多地将其视为设计问题。

1 个答案:

答案 0 :(得分:2)

为什么不创建一个html partial - 这是你的模板,并从ui-router引用它作为 templatePath ,并从$ modal引用它,如http://weblogs.asp.net/dwahlin/building-an-angularjs-modal-service所述。

但我认为正确的方法是创建一个自定义指令 - 表示tab3或模态的内容。指令是重用和封装代码的有角度的方式。一旦你有了这个指令 - 也就是说,让它说它被调用,那么从ng-view引用它很简单。模板(不需要templatePath)只是becoms:从$ modal引用时也是如此。

希望有所帮助。