微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JavaScript – 与骨干收藏相当的AngularJS是什么?

在Ang JS中有相当于 Backbone’s Collection还是 Ext JS’s Store?我正在学习 $resource,但不太了解这方面.

调节器

// This is the "collection" I'm interested in.
$scope.foos = [];

// Foo is a $resource.
Foo.query(function (foos) {

  // This works,but is there a smarter "collection" object?
  $scope.foos = foos;
});

$scope.createFoo = function (data) {
  var foo = new Foo(data);

  foo.$save(function (shinyNewFoo) {
    $scope.foos.unshift(shinyNewFoo);
  });
};

说明

在$scope.createFoo中,我正在创建一个新的Foo,坚持它,然后将其添加到我的穷人的集合,一个数组.这个工作和视图正确更新,但是我太懒了.理想情况下,我想要一个“收藏”,我可以添加删除,将自动POST / DELETE.也许像下面这样.

假装实施

$scope.fooCollection = new CoolCollection({
  // specify the type of resources this collection will contain
  itemsResource: Foo
});

// Creates new Foo,saves,adds to collection.
$scope.fooCollection.add(data);

这样的事情存在吗? $资源文件提到一个集合,但我没有真正得到它. This answer似乎很有希望,但没有解释收藏的想法.我错过了什么,还是没有想到这个角度呢?

附录

mean.io样板中,the article controller表示“收集”是手动管理的(见下面的拼接).

$scope.remove = function(article) {
    if (article) {
        article.$remove();

        for (var i in $scope.articles) {
            if ($scope.articles[i] === article) {
                $scope.articles.splice(i,1);
            }
        }
    } else {
        $scope.article.$remove();
        $location.path('articles');
    }
};

如果这个难以捉摸的“收藏”存在,我想他们会使用它.而是手动管理数组.

解决方法

AngularJS没有定义任何类型的结构化数据模型.这部分完全取决于你.

$资源服务只是低层$http服务的封装;它定义了从服务器获取数据的高级方法,与前端数据结构的关系很小.

如果您的应用程序需要更复杂的前端数据模型,则应调查其他JS库或自行滚动.然而,角度的单身服务和强大的双向数据绑定使得大多数小型/中型应用程序变得不必要.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐