Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 如何将数据与角度数据同步_Angularjs_Angular Data - Fatal编程技术网

Angularjs 如何将数据与角度数据同步

Angularjs 如何将数据与角度数据同步,angularjs,angular-data,Angularjs,Angular Data,我有一个带有角度数据的角度项目来使用Restful API 我的情况如下: 在我的服务中,我返回一个defineresource 在我的控制器中,我使用service.defineresource.findAll.then 这一切都很好,但这是我的问题。将新数据添加到服务器时,如何更新缓存或将新数据添加到缓存中 请指教 代码: //in service.js .factory('Service', function(DS) { DS.defineresource({

我有一个带有角度数据的角度项目来使用Restful API

我的情况如下:

在我的服务中,我返回一个defineresource 在我的控制器中,我使用service.defineresource.findAll.then

这一切都很好,但这是我的问题。将新数据添加到服务器时,如何更新缓存或将新数据添加到缓存中

请指教

代码: //in service.js

    .factory('Service', function(DS) {
     DS.defineresource({
        name: 'items'
        endpoint:'api/v2/users'
      });
     });
//在controller.js中

    .controller('MainCtrl', function($scope, Service) {
      Service.findAll().then(function (data) {
        $scope.items = data
      });

   });

上面的代码在我第一次加载数据时获取所有数据,但在初始加载后,它只从缓存加载。我的问题是,有没有一种方法可以在不破坏缓存的情况下同步和获取新数据。

要强制从后端刷新数据,需要在选项中设置bypassCache:true。如果您不传递该值,则将从缓存加载角度数据。这记录在

要每15分钟刷新一次数据,请使用$timeout加900000毫秒。要使用按钮刷新,请使用范围函数,该函数将通过单击按钮从ng调用

.controller('MainCtrl', function($scope, $timeout, Service) {
    $scope.refreshData = function () {
        Service.findAll({}, { bypassCache: true }).then(function (data) {
            $scope.items = data;
        });
    }

    $scope.refreshData();

    $timeout($scope.refreshData, 900000);
});

如果仅使用角度布线,请使用:

$route.reload()
它将重新加载/刷新您的页面。因此数据将是同步的。 您可以在ng中使用它,在输入新数据时单击或签入控制器使用它

  $route.reload()
如果您使用的是UI路由器,则可以执行相同的操作,但不使用$route.reload。请使用以下命令:

$state.go($state.current, {}, {reload: true});

你是说当其他用户向服务器添加数据时,你想更新网格吗?与三向数据绑定一样?是的,当web服务器中的数据发生变化时,我想通过单击“刷新”按钮或“每隔15分钟自动刷新”来更新我的UI。您可以使用ng click调用您的服务获取数据增益。这将再次设置为scope属性。对于每15分钟的刷新,您将使用$timeout调用您的服务,然后更新scope属性。我的问题是,当我使用findAll时,如何从服务器获取新数据?它从缓存中获取数据,而不是从服务器获取数据。请显示您的服务代码。我不知道什么是明确的资源。好的,谢谢,但是我无法想象当findAll的时候有什么变化。你知道我是需要重新订购还是打电话给digest?更新用户界面?随着变化?你所说的可视化是什么意思?你用什么来显示?ng repeat?是的,我使用的是ng repeat service.findAll仅在第一次从服务器读取数据,接下来的几次仅从Catch读取数据,即使使用此实现,它也不会与服务器异步。
$state.go($state.current, {}, {reload: true});