尝试使用angular $ resource.Query()方法从视图中的控制器检索数据时的无限循环

时间:2013-12-13 01:36:40

标签: sails.js

我正在构建一个小型的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的索引操作,只返回一些固定的测试数据

1 个答案:

答案 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

我喜欢堆栈溢出