收到错误:未确认的提供程序:$urlMatcherFactory
Getting Error: Unkown provider: $urlMatcherFactory
Unkown provider: $urlMatcherFactory
这是我尝试在应用程序配置中注入$urlMatcherFactory时 Angular 抛出的错误消息。
我已经包含了ui路由器JS文件,并且在过去的几个月里一直在使用它。
我需要做这样的事情:
var dateMatcher = $urlMatcherFactory.compile("/day/{start:date}");
$stateProvider.state('calendar.day', {
url: dateMatcher
});
如此示例所示。
通常这样的代码不会识别$urlMatcherFactory
。所以我尝试将其注入为对配置的依赖项,但随后出现此错误。
在这个问答匹配 url 和 AngularJS ui-router 中的数组单词列表中,您可以看到如何使用$urlMatcherFactory
。也是工作 plunker 的链接.
在该示例中,$urlMatcherFactory
用于.run()
:
.run(['$urlMatcherFactory',
function($urlMatcherFactory) {
var sourceList= ['John', 'Paul', 'George', 'Ringo']
var names = sourceList.join('|');
var urlMatcher = $urlMatcherFactory.compile("/{source:(?:" + names + ")}/:id");
$stateProviderRef
.state('names', {
url: urlMatcher,
templateUrl: 'tpl.root.html',
controller: 'MyCtrl'
});
}
]);
这也意味着,如果你打算在配置阶段使用它,你应该要求 $urlMatcherFactoryProvider
(请参阅末尾的提供程序)
但是:在配置阶段使用提供程序意味着 - 我们可以配置它们。我的意思是配置提供程序本身。稍后在运行阶段可评估(已配置)
配置提供程序
您可能想知道,如果工厂、值等如此容易,为什么有人会费心使用 offer 方法建立一个成熟的提供商。答案是提供程序允许大量配置。我们已经提到过,当您通过提供程序(或 Angular 为您提供的任何快捷方式)创建服务时,您将创建一个新的提供程序来定义该服务的构造方式。我没有提到的是,这些提供程序可以注入到应用程序的配置部分中,以便您可以与它们进行交互!
首先,Angular 分两个阶段运行您的应用程序 - 配置和运行阶段。正如我们所看到的,在配置阶段,您可以根据需要设置任何提供程序。这也是设置指令、控制器、过滤器等的地方。正如您可能猜到的那样,运行阶段是 Angular 实际编译您的 DOM 并启动您的应用程序的地方。
- 如何使用url加载程序在webpack中导入多个图像
- keyup事件处理程序更改焦点不适用于快速键入
- 用程序搜索JQuery数据表中的文本
- Javascript:selenium Web驱动程序isDisplayed()不工作
- Canvas Html5绘图应用程序,移动画布会导致重大问题
- Emberjs应用程序加载在除Index之外的所有路由上
- ExtJS 5用程序点击actioncolumn gridview
- 使用电话间隙在Android应用程序中显示SQL Lite的数据
- 如何从Java/scala调用js美化程序
- 在AngularJS应用程序中使用封装指令和路由的推荐方式是什么
- Windows8应用程序(html&Javascript):从图片库(除了文件选择器)显示图像的另一种方式
- angular 1.5应用程序中的导航栏
- YUI3 IO实用程序是否可以根据给定的内容类型标头值自动序列化数据
- 如何创建带有插槽的vue js组件预加载程序
- Webpack/Rect:遵循egghead.io教程,但出现错误:您可能需要一个合适的加载程序来处理此文件类型
- 在Windows 10中自动执行例行程序(主要与浏览器交互)
- 在Web应用程序中使用Highcharts javascript
- 递归使用 eval() 是检查程序执行的好方法吗?
- angularjs+rails应用程序中未显示模板
- 提示使用服务器端事件处理程序激活JavaScript