问题标签 [angular-amd]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
904 浏览

angularjs - 由于 ngRoute 的 $routeProvider...,ngMock 抛出模板加载错误...?

我只是将 ngMock 包含到我的项目中,因为我需要它来用于 $httpBackend。我有一堆业力/茉莉花测试设置,在包括 ngMock 之后,一切都因为它导致的错误而中断:

似乎它不喜欢 ngRoute/$routeProvider。具体来说,它打破了 else/redirectTo 语句。如果我注释掉该部分,则业力/茉莉花测试可以正常工作。

请注意,我正在使用 angularAMD(用于延迟加载),但即使我重写该部分以仅使用 {} 而不使用 angularAMD.route(),它仍然会引发相同的错误。IE:

知道为什么 ngMock 不喜欢 ngRoute 吗?现在,我创建了一个解决方法,在运行 karma/jasmine 测试时跳过 $routeProvider 部分。但是我试图了解发生了什么,我不应该在单元测试期间设置 $routeProvider (这是不好的做法)?

[编辑:]问题似乎也出现在其他部分。我正在运行一个测试,其中包含一个正在加载模板的服务,它还会引发错误:

[编辑:]我打电话时似乎抛出错误$httpBackend.flush();

[编辑:]太好了,找到了与问题相关的帖子。不敢相信谷歌在我搜索时没有显示任何相关结果。解决方案:如果您是从 Google 搜索结果中找到自己的,请查看以下内容:post 1post 2

[编辑:]无法让任何这些解决方案与 angularAMD 一起使用。有什么建议么?

0 投票
1 回答
6676 浏览

angularjs - 通过 AngularAMD 将 AngularJS 与 RequireJS 一起使用:无法读取未定义的属性“指令”

在创建了一个非常基本的原型 AngularJS 项目后,我想将其迁移以使用 RequireJS 来加载模块。我根据AngularAMDAngularAMD 示例项目修改了我的应用程序。

现在,当我访问我的默认路由时,我得到:

对于为什么不满足对“应用程序”的依赖,我一直在摸不着头脑。如果有人能发现我明显做错了什么,将不胜感激。

我已经将我的项目的源代码放在了 GitHub 上,但这里是关键部分:

main.js

应用程序.js

以及引发异常的文件: login_form.js

0 投票
1 回答
734 浏览

angularjs - 在路由配置中使用 AngularAMD 加载动态控制器

我有下一条路线配置:

似乎 angularAMD 不支持 controllerUrl 作为函数,因此我无法动态定义控制器。

问题是我如何为不同的 url 加载不同的控制器,mb 我错过了什么或者有另一种解决方法?

0 投票
0 回答
89 浏览

javascript - 如何配置 angular-strap 以与 AngularAMD 一起使用?

我正在用 Angularjs 构建一个应用程序,使用 AngularAMD 来动态加载模块。

我现在需要在这个项目中使用 Angular-strap( http://mgcrea.github.io/angular-strap/ ),但我不知道如何在我的 main.js 文件中声明它。

这是我的 main.js 文件:

有什么帮助吗?

0 投票
1 回答
10120 浏览

angularjs - AngularAMD + ui-router + 动态控制器名称?

我正在尝试在我的应用程序中编写通用路由,并根据路由参数动态解析视图和控制器名称。

我有以下有效的代码:

但是,我无法找出动态解析控制器名称的方法。我尝试resolve按照此处所述使用,但 ui-router 处理解析的方式似乎与 angular-route 不同。

任何指针?

编辑:我已经尝试过使用controllerProvider,但它对我不起作用(例如,下面的代码只返回一个硬编码的控制器名称来测试它是否真的有效):

给我以下错误:

错误:[ng:areq] 参数 'userController' 不是函数,未定义 http://errors.angularjs.org/1.3.3/ng/areq?p0=userController&p1=not%20aNaNunction%2C%20got%20undefined

0 投票
2 回答
639 浏览

angularjs - AngularJS 外部控制器/视图文件

如果我的主题描述性足够好,但我会尽力描述我在做什么。我真的很想学习和理解 Angular,我来自 Backbone.js。

我的设置是使用 RequireJS Angular 和 AngularAMD ( http://marcoslin.github.io/angularAMD/ )

我使用出去的路线很好地设置了我的页面,并从视图目录中获取不同的视图。但是,我试图从主页中拉出导航并将其放在自己的外部视图中。

我有一种感觉这很容易我只是不够精通 Angular 来做到这一点。我在想我需要一个导航控制器,但我不明白如何像使用路由一样加载我的外部视图。

所以这很简单,当我的 url 是 / 时,它将加载 home.html 模板和正确的控制器。如何在其中加载导航模板以使其包含在所有页面中?我将不得不使用工厂或其他东西吗?

0 投票
1 回答
370 浏览

javascript - AngularAMD 加载模块不起作用

我正在尝试将 angularAMD 用于一个新项目,但我无法让它工作。

我有以下内容:

main.js

应用程序.js

index.html 脚本标签

问题是我不断收到模块不可用错误。

我可能做错了什么,但是如果我检查 angularAMD 主页上的示例,我的设置似乎还不错..

希望有人能给我一个解决方案!

0 投票
1 回答
301 浏览

javascript - 使用 angularAMD 使用异步数据引导 AngularJS 服务

我有一个问题与这个问题中暴露的问题非常相似(AngularJS:Initialize service with asynchronous data)。我的不同之处在于我使用 angularAMD 异步加载脚本,而我无法在以下 app.config 中使用上述方法:

编辑 1

这是我试图完成的方法:https ://stackoverflow.com/a/21189057/2407203

编辑 2

添加更多信息:我有一个 webapi 作为后端,它是一个遗留系统,它提供了设置应用程序所需的各种业务规则。目前提供的主要信息有:

  1. 我使用 $translateProvider( http://angular-translate.github.io ) 以动态方式加载具有当前文化的字典。所有文本都应取自这本词典。
  2. 我有一项服务可以监视所有路由更改并根据返回的规则允许或限制访问。
  3. 一些信息应该根据规则放置在屏幕上。这些信息都封装在初始 html 的指令中。
  4. 一些 html 控件可能会根据规则出现或不显示。
0 投票
1 回答
231 浏览

javascript - 如何缩小 AngularAMD 代码?

我一直在查看AngularAMD 库,我想知道是否有办法缩小代码以用于生产。

我查看了具有 Grunt 配置的AngularAMD 示例,但不幸的是,构建说明对我不起作用,并且在该grunt setup步骤中给出了错误。所以我无法看到这个项目是否正在生成我正在寻找的那种最小化代码。

当尝试grunt-contrib-concat示例 AngularAMD代码上使用时,我遇到的问题与您在尝试使用 RequireJS 最小化 Angular 项目时遇到的问题相同,这导致了Ravi Kiran关于如何集成两者的博客文章。

(例如,定义app创建初始 Angular 模块的两者及其控制器作为 RequireJS 模块最终会产生循环依赖,因此您需要将控制器定义为单独的函数,在创建 Angular 模块的代码中将这些函数列为依赖项,然后呼唤angular.module(...).controller他们每个人。)

0 投票
1 回答
65 浏览

javascript - 是否可以像在 $routeProvider 中一样在 angularAMD 中设置页面标题?

我正在尝试实现这样的目标:

就像这篇关于 $routeProvider How to dynamic change header based on angularjs partial view 的帖子一样?(第二个未被接受的答案,但似乎是更好的答案)