gpt4 book ai didi

javascript - AngularJS - 如何停止重新渲染模板?

转载 作者:行者123 更新时间:2023-12-02 17:45:45 26 4
gpt4 key购买 nike

AngularJS 是否可以避免再次渲染 View ?

我有一个页面,它从数据库查询数据并将其显示到 View 中,但是当我导航到另一个页面,然后再次导航回来。它再次渲染 View 。

在 AngularJS 中是否有可能只保留渲染的 View ?我不想再次查询数据并重新渲染 View 。我想立即显示渲染 View ,而不需要再次查询数据。

最佳答案

如果您将数据保存或缓存在服务中,则可以避免每次都查询服务器。 Promise 是做到这一点的好方法。考虑以下示例,它使用 $http 返回的 Promise(但您可以使用 $q 轻松创建自己的 Promise):

app.controller('SomeController', function($scope, dataService) {
dataService().success(function(data) {
$scope.myData = data;
});
});

app.factory('dataService', function($http) {
var promise = null;

return function() {
if (promise) {
return promise;
} else {
promise = $http.get("...");
return promise;
}
};
});

由于 promise 是在第一次调用 dataService() 时设置的,并且现有的 promise 如果已经存在就会返回,因此只有第一次调用 dataService() 实际上会进行 HTTP 调用;其余的将使用现有的值。

关于javascript - AngularJS - 如何停止重新渲染模板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21774001/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com