当前位置: 首页 > 知识库问答 >
问题:

AngularJS:通过UI路由器加载js文件

商鸿哲
2023-03-14

我有AngularJs ui路由器在我的应用程序。我需要加载js文件基于我的状态。

.state('root.home',{
        url: '/index.html',
        views: {
            'header': {
                templateUrl: 'modules/header/html/header.html',
                controller: 'headerController'
            },          
            'content-area': {
                templateUrl: 'modules/home/html/home.html',
                controller: 'homeController'
            },
            'footer': {
                templateUrl: 'modules/common/html/footer.html',
                controller: 'footerController'
            }
        },
        data: {
            displayName: 'Home',
         }
    })

当主控状态加载时,headerController、homeController和footerController具有不同的js文件。我们需要加载控制器js文件。是否可以通过UI路由器?

共有3个答案

长孙阳州
2023-03-14

ui路由比requirejs(ng路由)更强大。

你可以看看她的不同之处:

角路由和角UI路由器的区别是什么?

http://www.amasik.com/angularjs-ngroute-vs-ui-router/

屠德宇
2023-03-14

你不应该根据你的路由状态动态加载javascript文件,相反,你应该连接所有的js文件,并通过古普缩小编译的源代码。

https://www.npmjs.com/package/gulp-concat https://www.npmjs.com/package/gulp-minify

高祺
2023-03-14

我认为你需要使用一个框架,比如要求Js,它是在你向用户展示的页面上加载你的脚本文件的基础

RequireJS加载与baseUrl相关的所有代码。

检查一下。我想这可能会有帮助。

 类似资料:
  • 问题内容: 我正在尝试测试一些视图,这些视图用于链接到应用程序中的其他状态。在我的测试中,我触发了对此元素的点击,如下所示: 如果状态切换为,该如何测试?在我的控制器中像这样使用时,这很容易: 但是当我使用时,我不知道要监视什么对象。如何验证我的应用程序处于正确状态? 问题答案: 我自己找到的。在查看了角度ui路由器源代码后,我在指令中找到了以下行: 当元素收到点击时,会包装在回调中。因此,在测试

  • 问题内容: 我有一个带有服务的应用程序,该服务包装了我的API调用: 并且我正在使用UI-Router在状态之间进行转换: 我不再使用普通的AngularJS路由器,并且难以理解如何实现404。我可以看到抛出状态被拒绝,但是如何在状态路由器中捕获它呢? 问题答案: 仅当没有其他 路由 匹配时才调用该规则。您真正想要的是拦截事件,即在状态转换中出现问题(例如,解析失败)时触发的事件。您可以在状态更改

  • 问题内容: 我将UI路由器用于主菜单的选项卡以及一种状态(用户)内的链接。用户状态有一个用户列表,当单击一个用户时,我只想重新加载子状态,但是它正在重新加载子状态和父状态(用户)。 这是我的代码: 这是单击用户时在我的父控制器(UserController)中调用的函数: 假设我处于users.userGroups状态,当我单击另一个用户时,只希望重新加载users.userGroups状态。这可

  • 问题内容: 如何使用ng-click而不是使用ui-sref的链接来更改route.state。 我已经试过了: 与 但这是行不通的。有任何想法吗? 问题答案: 查看ui-router文档Wiki。 最好的解决方案是使用。例如, 这是文档中特定功能的链接:https : //github.com/angular-ui/ui- router/wiki/Quick-Reference#stategot

  • 有没有可能--在中也这样做? 我为什么需要这个?让我用一个例子来解释: 创建新类别的路由是,在保存时显示,并且要将路由(23-是新项的id存储在数据库中)

  • 问题内容: 当前,我们的项目正在使用default ,而我正在使用此“ hack”来进行更改,而无需重新加载页面: 和在 我想到的替换用筑巢路线,但无法找到这。 有可能吗? 我为什么需要这个?让我用一个例子来解释: 创建新类别的路线是在SAVE 之后显示的,我想将路线更改为(23-是存储在db中的新项目的id) 问题答案: 只需使用即可代替 。内部调用,但会自动将选项设置为。您可以呼叫和设置。例如