【问题标题】:How to prevent entire page reloading?如何防止整个页面重新加载?
【发布时间】:2014-07-12 01:29:28
【问题描述】:

在我的页面中,我有两个容器。在第一个容器中,我将显示项目列表,相应项目的操作将显示在第二个容器中。

我有一个选项,在运行时我可以通过名为“create item”的链接在第一个容器中添加一个新项目。

我正在使用以下 $http 调用在运行时添加项目,

$scope.createItem = function() {
    $http({method:"POST",
        url:"/sample/addItem"
    }).success(function(data) {                     
        window.location.href = "/sample/pages/items.html";
    })              
};

每当我单击“创建项目”链接时,都会在第一个容器中动态添加一个新项目,但会重新加载整个 items.html 页面。

我需要避免重新加载整个页面。单击链接后,只有我的第一个容器应该重新加载。

【问题讨论】:

  • 这不是使用 AJAX 调用的方式。您不应该重定向新页面,而是使用 JQuery 修改当前页面以从 DOM 中添加/删除数据。
  • window.location.href 将重新加载页面不要使用它
  • 是的,但是我还能用什么代替 window.location.href 来重定向到页面以及防止整个页面加载。但我只有 items.html 中的两个容器......当我添加新项目时,只有第一个容器应该重新加载到相同的 items.html 页面中
  • 忘掉 jQuery,如果你有 angularjs 使用 angular 方式,发布更多代码,我会为你做一个工作示例,因为我觉得你有问题

标签: jquery ajax angularjs


【解决方案1】:

jQuery 有助于部分加载容器。试试

http://api.jquery.com/load/

.load() 有助于仅加载指定容器的响应。

$( "#result" ).load( "ajax/test.html" );

【讨论】:

    【解决方案2】:

    请不要 window.use location.href,你可以使用 $location 来达到这个目的:

    function myCtrl($scope, $http,$location){
    $scope.createItem = function() {
        $http({method:"POST",
                url:"/sample/addItem"
            }).success(function(data) {                     
               $location.path = "/items";
            })              
        };
    }
    

    你的路径items应该在你的路由提供者中注册。

    【讨论】:

    • 你能告诉我如何处理路由提供者吗??
    • 你是如何在 Angular 应用中配置你的路线的?,你能发布吗?
    猜你喜欢
    • 1970-01-01
    • 2015-06-17
    • 1970-01-01
    • 2022-07-06
    • 2014-04-16
    • 2013-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多