[英]What is the AngularJS equivalent to Backbone's Collections?
在Angular JS中是否有相當於Backbone的Collection或Ext 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.