簡體   English   中英

什么是AngularJS等同於Backbone的集合?

[英]What is the AngularJS equivalent to Backbone's Collections?

在Angular JS中是否有相當於Backbone的CollectionExt JS的商店 我正在學習$ 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);

這樣的事情存在嗎? $ resource文檔提到了一個集合,但我並沒有真正得到它。 這個答案似乎很有希望,但沒有解釋收集的想法。 我錯過了什么或者只是沒有想到Angular的方式嗎?


附錄

在MEAN.io樣板中, 文章控制器建議手動管理“集合”(參見下面的splice )。

$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沒有定義任何類型的結構化數據模型。 這部分完全取決於你。

$ resource服務只是低級$ http服務之上的包裝器; 它定義了一種從服務器獲取數據的高級方法,與您在前端構建數據的方式無關。

如果應用程序需要更復雜的前端數據模型,則應調查其他JS庫或自行編寫。 但是,angular的單例服務和強大的雙向數據綁定使得大多數小型/中型應用程序都不需要這樣做。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM