我只是想知道Angular如何监视Mongo DB中数据库集合的变化。我有一个变量跟踪我的MongoDB集合中的项目数量,我希望前端视图在从前端添加到集合中时立即插入数字。这可能吗?
示例:
var Item = $resource('/api/items'),
allItems = Item.query(function(results) {
return results;
});
$scope.allTodos = allItems.length;
前端:
<p ng-show="allTodos > 0">Total Items: {{allTodos}}</p>
我们假设我有一些方法可以通过前端的表单添加项目,并将它们提交到数据库。当我添加新项目时,{{allTodos}}数字如何立即动态增加(++)?在Backbone.js中,我知道有收集监视事件,即:
var Collection = Backbone.collection.extend({
//code...
}),
c1 = new Collection();
c1.bind("add", function() {
//do something when you add it to the collection
});
Angular有可能吗?我确定是的,所以请原谅我的绿色。谢谢!
答案 0 :(得分:0)
$resource.query
立即返回一个空对象。所以allItems
不是你所期望的。操作完成后,allItems
将填充数据。无需从回调中返回任何内容
一种方法是在回调中设置allTodos
:
Item.query(function(results) {
$scope.allTodos = results.length;
});
或完全消除额外变量allTodos
,使项目在模板中可见(应该是控制器$scope
的一部分)。
var Item = $resource('/api/items');
$scope.allItems = Item.query();
并在html中
<p ng-show="allItems.length > 0">Total Items: {{allItems.length}}</p>