我正在尝试使用angular 1.6创建一个博客,除了我创建服务并注入配置文件外,一切正常。测试指令工作正常,只在注入myService服务/工厂时中断。
app.coffee
app = angular.module 'dts',['ngRoute']
app.service 'myService', ->
this.asd = ""
app.directive 'ngHello', ->
return {
restrict:'E'
replace: true
template: "<h1>Hola mundo</h1>"
link: (scope,element,attrs)->
}
config.coffee
app = angular.module 'dts'
app.config ["$locationProvider","$routeProvider","myService", ($locationProvider,$routeProvider,myService)->
$routeProvider
.when "/",
controller: "mainCtrl"
templateUrl: "/app/views/index.html"
.when "/blog",
controller: "blogCtrl"
templateUrl: "/app/views/blog/index.html"
.when "/blog/post/:id",
controller: "blogCtrl"
templateUrl: "/app/views/blog/single.html"
.when "/contact",
controller: "contactCtrl"
templateUrl: "/app/views/contact.html"
.otherwise '/'
$locationProvider.html5Mode
enabled: true
requireBase: false
]
脚本包含
script(src="/js/libs/angular.min.js")
script(src="/app/modules/angular-route.min.js")
script(src="/app/app.js")
script(src="/app/services/slugs.js")
script(src="/app/config.js")
script(src="/app/controllers/main.js")
script(src="/app/controllers/blog.js")
我做错了什么?
我在1.6版本上搜索了有关服务或工厂的问题或弃用,但我找不到任何内容。我将角度降级到1.5.6并且也不起作用。
我尝试将服务/工厂移动到app文件,但也打破了(在我在services.js上创建它之前)
答案 0 :(得分:1)
你必须在配置中注入myServiceProvider
,你不能在配置功能中注入服务
答案 1 :(得分:0)
来自文档:
模块加载&amp;依赖
- 配置块 - 在提供商注册和配置阶段执行。 只能将提供程序和常量注入配置块。这是为了防止服务在完全配置之前意外实例化。
— AngularJS Developer Guide - Modules (Loading & Dependencies)
服务无法创建或更改路由表。
另一方面,服务可以在路由表的resolve函数中注入,因为在应用程序的运行阶段会调用这些函数。