我正在构建一个小型的sails.js + angular.js应用。
这是一个小提琴,大致显示了我的代码:http://jsfiddle.net/WEk3F/
index: function(req, res, next) {
Food.find({}, function foundFoods(err, foods) {
if (err) return next(err);
var data = {
name1: "test1",
name2: "test2"
}
res.view(
'food/index', {
foods: data
});
});
},
<div ng-app="myApp">
<div ng-controller="FoodController">
<ul>
<li ng-repeat="food in foods">
{{food.name}}
</li>
</ul>
<form>
<label for="name">Name:</label>
<input name="name" ng-model="editableFood.name" />
</form>
</div>
</div>
我的问题是,每当我尝试从我的控制器中检索数据时,我都不会得到这2个项目,而是会呈现越来越多的项目而且不会停止。即使页面变得缓慢而且没有响应,几乎冻结。
当我说
时$scope.foods = [{"name": "test1"},{"name": "test2"}];
而不是
$scope.foods = Food.query();
它有效。但我希望数据来自后端通过控制器。 angular.js $ resource模块的其他方法(添加,更新等)对我来说很好。
/ food映射到我的FoodController的索引操作,只返回一些固定的测试数据
答案 0 :(得分:0)
我发现了问题所在。
angular.js $资源应该只能以一种宁静的方式使用,所以对我的food / index的GET请求应该返回一个对象数组。
在我的情况下,情况并非如此。相反,我使用我的控制器的索引操作来渲染视图,结果就是html。所以我的选择是定义一个新的路由,$ resource用于Query()命令或定义一个我用于view / html的新动作,并再次使用索引动作进行纯粹的restful响应。 / p> @sam hunter指向我正确的方向
我收到的无限循环在这里解释:One dimensional array of strings being parsed to 2d by angular resource
我喜欢堆栈溢出