问题标签 [angularjs-injector]
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.
javascript - 仅在需要时注入模块依赖项(如插件)
我有 2 页(我不使用angular
's routing
- This 约束)。
在其中一个中,我想使用ui-grid
这个演示中的指令:
我的问题是,是否有办法ui-grid
在任何情况下都不将依赖项注入应用程序,但仅在我需要时才注入。
就像是:
更新
我试着做:
但我有一个错误:
未知提供者:ui-gridProvider <- ui-grid
http://errors.angularjs.org/1.2.26/$injector/unpr?p0=ui-gridProvider%20%3C-%20ui-grid
angularjs - 角度代码在动态生成的内容中不起作用
我知道我以前也发生过这种情况,但并非完全以这种方式发生,而且我在进行必要的更改时遇到了麻烦。
我有一个 div,开始时是空的,并作为画廊的一部分隐藏。当我单击图像时,它会填充 div 并显示它。除了图像/内容,还有一些导航元素。问题是,这些也是动态生成的,并且由于角度需要重新编译而无法正常工作。这是填充的函数:
如何使该代码“重新编译”以便“关闭”和导航项工作?
更新
所以,我改变了我的方法,但我显然仍然缺少一些东西:
我的新 HTML:
我的新功能:
当我单击图片时,一切正常,但是当我单击上一个或下一个时,它会关闭,因为它将 picID 注册为空。我检查了,数字确实打印在代码中,但是 angular 在点击时看不到它们。它们以未定义的形式出现 - 似乎是编译问题。我尝试将其全部实现为指令,即使使用建议的链接,但我一定做了一些事情,因为它没有帮助。
angularjs - 将工厂注入控制器时出错
如果我不注入ValuesResource
控制器welcomeCtrl
,应用程序就可以工作。我已阅读错误文档,但找不到问题。
错误:
javascript - 使用 $injector 将 $scope 注入控制器时出现错误 Unknown provider: $scopeProvider <- $scope
以这种方式使用 DI 时:
它可以工作,但是当它像这样使用时:
这将导致错误:
错误:[$injector:unpr] 未知提供者:$scopeProvider <- $scope
这是一个展示错误的示例的plunker,请查看评论以获取替代方案,以查看只有范围而非自定义服务受此影响。
我发现了这个Angular 错误,他们谈到在创建子 $scope 之前实例化控制器,正如Tomer Avni回答的那样,所以:
- 为什么第一种注入方式
$scope
有效,而第二种注入方式无效? - 有没有办法使用依赖注入的第二种方法
$injector
注入$scope
?
javascript - 无法实例化模块 ngJoyRide
我是ng-joyride
第一次使用。我做到了bower install ng-joyride --save
。并将其与其他模块一起包含在我的模块中,例如:
现在我无法看到我的应用程序的视图部分。控制台说
但是在包含 ngJoyRide 之前,我没有遇到 Jquery 的任何问题。我的 index.html 中带有 jquery 的脚本标记如下所示:
我觉得这可能是我犯的一个非常愚蠢的错误。但不确定我哪里出错了,非常感谢帮助。
提前致谢。
javascript - 检查具有给定名称的指令是否存在,angularjs
有没有办法检查角度指令是否存在?
我想做的,或者更好的我所拥有的:“协议”的集合,它们有一些相似之处,例如:名称、创建者、上次编辑、评论等,但它们都有特殊的字段。
我有一个与所有这些协议相匹配的指令。显示名称和所有协议共有的所有内容。在这个指令中,我想检查给定协议的特殊(更具体)视图是否可用。就我而言,我称之为“CompactView”。CompactView 将给出该协议的更详细信息,它应该显示在实际指令中。所以一个嵌套指令 - 没什么大不了的。
我的第一个 approched 工作正常,我有一个数组,其中协议名称为键,指令 html 元素(字符串)为值:
如果在决定器数组中没有退出键,我将显示一些默认的 txt 解释,即没有可用的 CompactView。
应用程序可能会增长,并且会遵循许多协议,因此当有人创建协议时,需要扩展决策器数组。容易失败,如果我可以检查具有某个名称的指令是否存在并编译它会更好。
我的新方法如下所示:
所以 $injector.has 不起作用,因为指令没有在 $provide 中注册。重新声明和检查错误,try catch 块,也不起作用。
我目前正在尝试了解 $compileProvider,角度内的某处是存在指令的信息,我很想找到它。
关于如何解决这种“通用指令”方法的任何想法或建议?也许我对这个嵌套指令的概念是错误的,并且有一个更简单的方法?
两个代码块都在directive() 的链接函数中
angularjs - Angular 找不到注入器 modulerr 错误
这是我的代码:
我不知道错误应该在哪里。我刚收到这个错误。
未捕获的错误:[$injector:modulerr] http://errors.angularjs.org/1.5.0/ $injector/modulerr?p0=studentfeedback&p1=….c%20(https%3A%2F%2Fcode.angularjs.org% 2F1.5.0%2Fangular.min.js%3A20%3A449)
我删除了那天添加的所有内容,但我没有更改任何内容。只有当我完全清除我的 html 和 angular 时,错误才会消失:p。所以我不知道在哪里可以找到错误。我希望有人能帮助我。谢谢
angularjs - 可以将指令 $compiler 注入服务吗?
我正在尝试将指令输出为javascript 字符串,以便可以将html放置在代码显示窗口中。我对实际代码而不是浏览器呈现的版本感兴趣,因为我正在向高级用户显示代码。所以我希望能够将指令函数注入服务或可能的页面控制器。
这将类似于 using$compile
或什至$interpolate
,但针对特定指令。我想我已经定义了指令,我很有可能以某种方式访问 html 生成功能。我知道您可以在指令定义中定义控制器,但我正在寻找我在服务或页面控制器中使用的解决方案。
因此,例如,假设我在模块中定义了一个指令
防爆服务:
(我知道像这样使用 $rootScope 很奇怪,但我只是想提出一个简短的成功示例。)
示例页面模板:
有没有办法将指令或类似指令的内部 $compiled 版本注入到服务中?
angularjs - 在 Angular 1.5 中将模块注入业力测试
我正在尝试将我的 Angular 应用程序从 1.3.x 升级到 1.5.1。当我使用 Angular 1.3.x 版本时,我有一套测试在 Karma + PhantomJS 上运行良好,但是一旦我升级了所有测试都失败了。看来我之前将模块注入单元测试的方式不再有效。
这在 1.5 中失败:
我也尝试过注入以下内容
但我的 App 模型仍然没有被注入。
我一直在研究 AngularJS 1.5.1 的文档,但我没有看到我需要对注入器进行任何更改。
在 Angular 1.5.x 中,如何正确地将模型注入到我的单元测试中?
node.js - 无法读取未定义的属性“拦截器”
我的应用程序正在连接到 nodejs 后端进行身份验证,工厂和配置如下
起始页面是登录页面,但我面临控制台错误的空白页面
services,js 中的第 94:16 行是:$httpProvider.interceptors.push('AuthInterceptor');
我该如何解决