当前位置: 首页 > 面试题库 >

Angular UI路由器-动态TemplateURL

谷星文
2023-03-14
问题内容

我正在建立一个带有角度UI路由器的静态HTML网站进行导航。我基本上有一个带有多个(10+)html模板(页面)的ui视图,可以加载到该视图中。我所有的模板页面都位于名为“页面”的目录中。

所以我基本上想知道我们是否可以在$
stateProvider中仅定义一个状态来动态分配多个模板url,而不是为每个HTML模板页面编写不同的状态(如下所述)。

$stateProvider
.state('home', {
    url: '/home',
    templateUrl: 'pages/home.html',
    controller: 'homeController',
    controllerAs: 'home'
})
.state('viz', {
    url: '/viz',
    templateUrl: 'pages/viz.html',
    controller: 'vizController',
    controllerAs: 'viz'
})
.state('about', {
    url: '/about',
    templateUrl: 'pages/about.html',
    controller: 'aboutController',
    controllerAs: 'about'
})....

任何帮助深表感谢。


问题答案:

那应该没有那么困难,例如检查以下内容:

基于API Ajax调用的插件的Angular UI-Router动态路由。基于子弹加载视图

我们可以使用$stateParamstemplateProvider

.state('general', {
   url: '/{type}',
   //templateUrl: 'pages/home.html',
   templateProvider: ['$stateParams', '$templateRequest',
      function($stateParams, $templateRequest) 
      {
        var tplName = "pages/" + $stateParams.type + ".html";
        return $templateRequest(tplName);
      }
    ],
    // general controller instead of home
    //controller: 'homeController',
    controller: 'generalController',
    controllerAs: 'ctrl'

我们还可以将参数限制为type期望值之一,请参阅:

url: '/{type:(?:home|viz|about)}',


 类似资料:
  • 问题内容: 我正在使用AngularUI路由器,并且试图建立嵌套/子链接。 一切正常,但是如何在“联系人”选项卡中选择/激活链接? 基本上,我需要能够在加载“联系人”页面时选择/激活一个联系人链接。当前,由于某些原因,除非我单击链接,否则它不会阅读。 柱塞:http ://plnkr.co/edit/DWjp5M6kJt2MyBrasfaQ?p=preview 问题答案: 有一种更快的方法可以做到

  • 问题内容: 自从我开始解决这个问题已经有几个小时了,我似乎无法解决这个问题。 我有一个可能会导致用户实际输入URL的应用程序。在这种情况下,不难相信用户可能会输入斜杠。例如, www.example.com/users/2和www.example.com/edit/company/123 应该与 www.example.com/users/2/和www.example.com/edit/compa

  • 问题内容: 我目前有一个内置路由的AngularJS应用程序。它可以正常工作,并且一切正常。 我的app.js文件如下所示: 我的应用程序内置了CMS,您可以在其中复制 / pages 目录中的新html文件并添加新的html文件。 即使对于新动态添加的文件,我仍然希望通过路由提供程序。 在理想的情况下,路由模式为: $ routeProvider.when(’/ pagename ‘,{temp

  • 问题内容: 我是AngularUI路由器的新手,并希望将其用于以下情况: 所有页面 共有的布局包括一个顶部导航栏,顶部导航栏包含一个右侧带有按钮的菜单,以及一个内容部分,用于填充下面的空间。该页面包含我映射到UI路由器状态的多个页面(第1页,第2页,…)。每个页面可以具有自己的菜单项和内容。该 菜单需要与内容共享范围 ,因为它们交互(例如保存按钮提交的内容形式,它应该只如果表单有效启用)。 HTM

  • 我一直在尝试模块化我的React.js应用程序(它将作为带有Electron的桌面应用程序提供),如果我将来制作一个新模块,我只需添加一个新文件夹和修改几个文件,它就可以很好地集成。我最初受到这篇文章的启发:https://www.nylas.com/blog/react-plugins/ 在那之后,我开始尽可能多地研究,并最终创建了一个JSON文件,该文件将保存在服务器中,其中包含为特定客户机注