Angularjs 角度-两个(或更多)相互依赖的服务
我在学习英语方面没有什么问题 假设我有两个工厂: 用户工厂Angularjs 角度-两个(或更多)相互依赖的服务,angularjs,factory,angularjs-factory,Angularjs,Factory,Angularjs Factory,我在学习英语方面没有什么问题 假设我有两个工厂: 用户工厂 module.factory('User', ['$http', '$injector', 'Post', function($http, $injector, Post){ User.prototype = { getPosts: function(){ **code** ** Some Post factory operations (Post.getPos
module.factory('User', ['$http', '$injector', 'Post', function($http, $injector, Post){
User.prototype = {
getPosts: function(){
**code**
** Some Post factory operations (Post.getPostsByUserId(data.id) or something like that)**
}
}
}
module.factory('Post', ['$http', '$injector', 'User', function($http, $injector, Post){
Post.prototype = {
getUser: function(){
**code**
** Some User factory operations (User.getUserById(data.id) or something like that)**
}
}
}
出厂后
module.factory('User', ['$http', '$injector', 'Post', function($http, $injector, Post){
User.prototype = {
getPosts: function(){
**code**
** Some Post factory operations (Post.getPostsByUserId(data.id) or something like that)**
}
}
}
module.factory('Post', ['$http', '$injector', 'User', function($http, $injector, Post){
Post.prototype = {
getUser: function(){
**code**
** Some User factory operations (User.getUserById(data.id) or something like that)**
}
}
}
我想我不必说我得到了循环依赖错误,但是如何处理这个问题呢?
我想这样做
<li ng-repeat="user in users">
{{ user.name }}<br />
<div ng-repeat="post in user.getPosts()">
{{post.title}}
</div>
</li>
我将在我的工厂中使用这些功能,然后考虑:
<li ng-repeat="user in users">
{{ user.name }}<br />
<div ng-repeat="post in user.posts">
{{ getPostById(post).title }}
</div>
</li>
<li ng-repeat="post in posts">
{{ post.title }}<br />
{{ getUserById(post.user_id).name }}
</li>
{{user.name}}
{{getPostById(post.title}}
{{post.title}}
{{getUserById(post.user\u id.name}
正确的方法是什么?
或者我应该扩展baseController?(我不知道如何在angular和JS中扩展对象/原型)
编辑:处理插值错误和循环相关性:
EDIT2:Fiddle$rootScope工作:你真的试过这个吗?Angular在依赖注入方面非常松散,仅仅因为服务相互引用并不意味着它们是循环的。事实上,从角度上看,它强制执行初始化顺序以防止循环依赖关系。@Claies正如我所写的,我只尝试了一种方法。我想知道如何以一种“适当”的方式处理这个问题,因为我刚刚开始我的Angular冒险之旅;如果您尝试了它并得到了一个错误,那么展示真实的代码和错误将帮助我们解决您的错误。相反,如果这是试图征求与问题相关的不同编码风格的意见,那么这不适合这种格式。这个网站的工作原理是有形的问题和解决方案,而不是推测性的理论。@Claies这里是对
$rootScope
:它是有效的,但它是“正确的方式”吗?这不会使我的代码以后变得复杂吗?@Claies这里是fiddle:对于插值和循环依赖性错误,我已经试着像我一开始写的那样使用管理器。