AngularJS循环依赖与相互依赖的关联

时间:2013-12-25 04:17:56

标签: angularjs coffeescript associations circular-dependency

在我的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将关联数据转换为模型数组。

我不确定这是否真的让事情变得更加清晰,不过我希望它能做到......

0 个答案:

没有答案