Angularjs视图不显示从工厂返回的数据

时间:2015-06-18 22:56:02

标签: javascript ruby-on-rails json angularjs

我设置了一个服务,它使用了返回json的rails api。请求根据控制台输出返回:

Resource {tests: Array[4], $promise: Promise, $resolved: true}

我所遇到的问题是在我看来并没有显示出来。我是否需要以某种方式转换返回的结果?当我通过邮递员ping那条路线时,我得到了一个json对象作为我的结果集。

我有以下设置:

/service/test.js

  angular.module('myApp')
      .factory('Test', function($resource) {
        return $resource('http://api.myapp-dev.com:3000/tests/:id', { id: '@_id' },
        {
          'index': {
            method:'GET',
            headers: {
              'Authorization':'<a token>'
            },
            isArray: false
          }
    });
  });

/controllers/tests.js

angular.module('myApp')
  .controller('TestsCtrl', function ($scope, Test) {
    $scope.tests = Test.index();
  });

视图/ tests.html

<div>
  <ul ng-repeat="test in tests">
    <li>{{ test.value }}</li>
  </ul>
</div>

1 个答案:

答案 0 :(得分:0)

您应该在控制器中执行以下操作。

Test.index(
  function(response) {
    $scope.tests = response.tests;
  },
  function(error) {
  }
)

还有其他方法可以做到这一点。

Test.index().$promise.then(
  function(response) {
    $scope.tests = response.tests;
  },
  errorCallback
)