在我的angularJS应用程序中,我为每个模型使用工厂。这些模型彼此关联。例如,如果我有User
模型和Post
模型,则用户可能会有很多帖子,而帖子可能会有很多标记用户。我有一个自动加载这些关联的服务。
但是,这里有一个循环依赖问题。我的User
模型取决于我的Post
模型,反之亦然。我可以通过在关联服务中使用$injector
来动态加载模型来绕过这个。使用最近的angularJS版本,它似乎不再适用。
我已经阅读了Misko's post关于循环依赖关系 - 但我不确定在这种情况下该怎么做 - 似乎我需要这种循环依赖。有人可以提出一个更好的方法来解决这个问题,或者某种方式绕过循环依赖问题吗?
编辑:输入一些示例代码以使事情更清晰:
angular.module('some-module')
.factory('Post', ['BaseModel', 'HasManyAssociation', 'User',
(BaseModel, HasManyAssociation, User) ->
class Post extends BaseModel
# ... logic and fields particular to this model...
_associations: [new HasManyAssociation('tagged_users', 'tagged_user_ids', User)]
])
.factory('User', ['BaseModel', 'HasManyAssociation', 'Post',
(BaseModel, HasManyAssociation, Post) ->
class User extends BaseModel
# ... logic and fields particular to this model...
_associations: [new HasManyAssociation('posts', 'post_ids', Post)]
])
我在这里广泛使用coffeescript课程。 BaseModel类具有一般模型所需的所有逻辑。当从服务器加载关联数据时,HasManyAssociation将关联数据转换为模型数组。
我不确定这是否真的让事情变得更加清晰,不过我希望它能做到......