如何重用Angular资源函数?

时间:2014-12-12 08:57:35

标签: angularjs angularjs-resource

我正在编写一个类似于邮箱应用程序的相对简单的Angular应用程序 - 它由收件箱和其他几个"文件夹"组成。我的想法是让消息(我的Angular模型是消息)并让文件夹在每个消息中显示许多消息。

这很容易为Inbox(你登陆的第一页)做,因为我可以从Angular资源获取我的消息,如下所示:

Messages.get({location: 'inbox'}, function(data){
    $scope.messages = data.objects;
});

要在我的视图中显示收件箱中的邮件数量,这足以使用这段代码

<p>{{messages.length}}</p>

但是,我很难找到一个好方法来获取其他文件夹中的邮件数量而不重复自己。我希望尽可能高效地获取此信息,并使代码也可重用。例如,要获取发件箱中的邮件数量(不一次获取所有发件箱邮件,只是数字),我可以写:

Messages.get({location: 'outbox', meta_only : true}, function(data){
    $scope.outbox_number = data.meta.total_count;
});

这还不够好,因为我仍然必须在该代码中编写$ scope.outbox_number,并且无法将其作为将任何文件夹名称作为参数的通用函数。

我的问题是 - 如何重用依赖于$ resource的函数来获取我想要的数据?另外,最好为我的文件夹和我的消息窗格设置一个单独的控制器吗?

1 个答案:

答案 0 :(得分:-1)

    Messages.get({location: $scope.location, meta_only:true},function(data) {

        $scope.number[$scope.location] = data.meta.total_count;

    }, function(error) {

    });

所以现在你将在$ scope.number.outbox中,你可以将$ scope.location更改为你想要的每个控制器,你将获得$ scope.number。[你指定的位置];