0

我在访问 $scope 时遇到问题。因为它似乎对我不起作用。

我有一个资源:

squashApp.factory('CourtsService', function($resource) {
  return $resource('/api/court/:num', {num: '@num'});
});

我的控制器会:

squashApp.controller('CourtsController',
    function CourtsController($scope, $window, $http, CourtsService) {        
        CourtsService.get({num:1}, function(data){
                     $scope.courts = data;
        })

  });

我的服务器成功地返回了 javascript 对象 (JSON) 格式的数据。我已经检查过了。但由于某种原因,$scope 没有更新,在这个回调之后,我的视图根本没有改变。

请帮忙

4

2 回答 2

0

我为你创建了一个演示,你的代码看起来不错。

但是,当这样的错误发生时,为回调添加一些逻辑总是好的,这样你的应用程序就不会无声无息地死掉。

squashApp.controller('CourtsController', function CourtsController($scope, $window, $http, CourtsService) {
    CourtsService.get({
        num: 1
    }, function (data) {
        console.log('success');
        $scope.courts = data;
    }, function (data) { // -> error handling
        console.log('failed');
        $scope.courts = data;
    })
});

Demo

于 2013-08-04T17:48:05.670 回答
0

使用 $promise 使用 angular $resource 访问 $scope 的简单方法(推荐)

  squashApp.controller('CourtsController',
    function CourtsController($scope,CourtsService) {        
        CourtsService.get({num:1}).$promise.then(function(data){
          //$scope -- can be accessed here
       }, function(failed){
       }
  });
于 2016-06-15T03:31:22.370 回答