资源调用回调中的$ scope不起作用

时间:2013-08-04 17:09:01

标签: javascript node.js angularjs express

我在访问$ 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不会更新,在此回调之后我的视图根本没有变化。

请帮助

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

使用$ $(推荐)

使用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){
       }
  });