ngResource成功发布新项目后,$ scope未更新

时间:2015-03-27 20:21:00

标签: angularjs angular-resource ngresource

我已多次在我的应用中遇到此问题。我有一个有趣的ngResource资源,我作为$scope附加到$scope.jogasok = Jogas.query();,我通过调用类似

的内容在同一范围内创建一个新资源
$scope.addJogas = function (jogas) {
      $scope.isDisabled = true;
      var j = new Jogas(jogas);
      j.$save(function (value) {
        $scope.isDisabled = false;
      }, httpErrorHandler);
    };

其中Jogas是ngResource

.factory('Jogas', function ($resource) {
    var Jogas = $resource('/jogasok/:id/:action', {
      'id': '@_id',
      'action': '@action'
    }, {
      'ujBerlet': {'method': 'POST', 'params': {'action': 'ujberlet'}}
    });
    return Jogas;
  })

POST调用成功,因此重新加载页面会在$scope.jogasok中显示新项目,但如果我不重新加载则不会显示新项目。

$scope.jogasok完成后,我可以自动重新加载/扩展$save吗?

1 个答案:

答案 0 :(得分:0)

我已经弄清了自己对这个问题的愚蠢。

$scope.jogasokArray,因此如果不更改它,其值就不会改变。

最基本的解决方案是在成功处理程序中重新加载$scope.jogasok

$scope.addJogas = function (jogas) {
  $scope.isDisabled = true;
  var j = new Jogas(jogas);
  j.$save(function (value) {
    $scope.jogasok = Jogas.query();
    $scope.isDisabled = false;
  }, httpErrorHandler);
};