Angularjs$stateProvider和单例服务问题
我使用angular ui router使我的应用程序按路由进行组织,但我有点困惑。正如我所知,我必须在模块中添加“ui路由器”依赖项才能使用$stateProvider。但是,即使我没有添加“ui路由器”依赖项,它也工作得很好 我知道angular服务是单例对象,所以如果我只添加一次“ui路由器”依赖项。我可以在任何模块中使用$stateProvider服务吗 下面的代码是我的应用程序中定义的角度代码Angularjs$stateProvider和单例服务问题,angularjs,angular-ui-router,angular-services,Angularjs,Angular Ui Router,Angular Services,我使用angular ui router使我的应用程序按路由进行组织,但我有点困惑。正如我所知,我必须在模块中添加“ui路由器”依赖项才能使用$stateProvider。但是,即使我没有添加“ui路由器”依赖项,它也工作得很好 我知道angular服务是单例对象,所以如果我只添加一次“ui路由器”依赖项。我可以在任何模块中使用$stateProvider服务吗 下面的代码是我的应用程序中定义的角度代码 angular.module('app', ['ui-router','app.pages'
angular.module('app', ['ui-router','app.pages']);
angular.module('app.pages', ['app.pages.core']);
angular.module('app.pages.core',[])
.config(function ($stateProvider, $urlRouterProvider) {
$stateProvider
.state('common.default', {
abstract: true,
views: {
header: {
templateUrl: '/public/app/common/components/header/header.html',
controller: 'headerController'
},
content: {
template: '<div ui-view></div>'
}
}
})
.state('common.default.core', {
url: "/goongles/",
templateUrl: "/public/app/pages/core.html",
controller: 'coreController'
});
});
angular.module('app',['ui-router','app.pages']);
angular.module('app.pages',['app.pages.core']);
angular.module('app.pages.core',[])
.config(函数($stateProvider,$urlRouterProvider){
$stateProvider
.state('common.default'{
摘要:没错,
观点:{
标题:{
templateUrl:“/public/app/common/components/header/header.html”,
控制器:“headerController”
},
内容:{
模板:“”
}
}
})
.state('common.default.core'{
url:“/gongles/”,
templateUrl:“/public/app/pages/core.html”,
控制器:“coreController”
});
});
视图代码
<div ui-view="header"></div>
<div ui-view="content" class ='view ng-scope openm'></div>
请告诉我任何想法。谢谢把它想象成一棵树。树的根是您在
ng app
指令中设置的任何模块。在引导时,它从那里开始,加载所有模块组件及其依赖项的组件。一旦引导完成,生命周期将继续(创建常量,然后创建提供程序,然后运行配置块,等等)
由于应用程序中的某个地方依赖于ui路由器
,因此在引导后,其所有服务都将可用
不管怎样,你不应该依赖它来让你的模块工作。如果您要在另一个应用程序中使用
app.pages.core
模块,而该应用程序与ui router
没有依赖关系,那么它将无法工作。将其视为一个树。树的根是您在ng app
指令中设置的任何模块。在引导时,它从那里开始,加载所有模块组件及其依赖项的组件。一旦引导完成,生命周期将继续(创建常量,然后创建提供程序,然后运行配置块,等等)
由于应用程序中的某个地方依赖于ui路由器
,因此在引导后,其所有服务都将可用
不管怎样,你不应该依赖它来让你的模块工作。如果您要在另一个应用程序中使用
app.pages.core
模块,而该应用程序与ui router
没有依赖关系,则该模块将无法工作。当您创建角度模块时,始终指定此模块中使用的依赖项,即使您已在另一个模块上指定了相同的依赖项
请记住,每个模块都应该是自给自足的,并且应该在不涉及其他模块依赖项的情况下工作,以便完全可重用
所以要正确回答你的问题。。是的,您可以在任何模块中使用
$stateProvider
,但可以在每个模块中添加ui路由器依赖项。创建角度模块时,始终指定此模块中使用的依赖项,即使您已经在另一个模块上指定了相同的依赖项
请记住,每个模块都应该是自给自足的,并且应该在不涉及其他模块依赖项的情况下工作,以便完全可重用
所以要正确回答你的问题。。是的,您可以在任何模块中使用$stateProvider
,但在每个模块中添加ui路由器依赖项