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
Javascript 使用angularJs重新加载页面_Javascript_Angularjs_Rest_Xmlhttprequest_Angularjs Routing - Fatal编程技术网

Javascript 使用angularJs重新加载页面

Javascript 使用angularJs重新加载页面,javascript,angularjs,rest,xmlhttprequest,angularjs-routing,Javascript,Angularjs,Rest,Xmlhttprequest,Angularjs Routing,我是angularJS的新手。我已经开始学习CRUD操作。我遇到了一个问题,当我删除一个条目时,页面应该重新加载 我也经历了$location和$route。并实施如下: config app.config( function ( $locationProvider, $routeProvider ) { $locationProvider.html5Mode(true); $locationProvider.hashPrefix = '!'; $routeProvider

我是
angularJS
的新手。我已经开始学习CRUD操作。我遇到了一个问题,当我
删除一个条目时,页面应该
重新加载

我也经历了
$location
$route
。并实施如下:

config

app.config( function ( $locationProvider, $routeProvider ) {
  $locationProvider.html5Mode(true);
    $locationProvider.hashPrefix = '!';

    $routeProvider.when('/', {
        templateUrl: '/views/index.html',
        controller: 'MainCtrl'
    });
    $routeProvider.when('/this',{
        templateUrl: '/views/about.html',
        controller: 'MainCtrl'
    }); 
});
当行动成功时,我写下:

$location.path('/this');
但是当我这样做时,
url
会从
http://localhost/someapp
http://this
但页面不会刷新。在这种情况下我该怎么办?请帮帮我,伙计们

编辑

这是我的
删除代码

$scope.deletecode = function (id) {
    name = '';
    if (confirm("are you sure to Delete the name")) {
        $http({
            method: 'POST',
            url: 'rohit.php',
            data: {
                "name": name,
                "id": id,
                "delete": "true"
            },
        }).
        success(function (data, status, headers, config) {
            alert("data deleted successfully");
            $location.path('/this');
        }).
        error(function (data, status, headers, config) {
            alert("Unable to load data.");
        });
    } else {
        alert("Data deletion cancelled by user ... ");
    }
};
在init上,我从一个php文件获取数据:

$http({
    method: 'GET',
    url: 'test.php'
}).
success(function (data, status, headers, config) {
    $scope.samples = data;
}).
error(function (data, status, headers, config) {
    alert("Unable to load data.");
});

所有数据都存储在
$scope.samples
中,它返回两个东西
user\u id
name
您的http请求正在从服务器删除该项目,但您没有从客户端代码中删除它,这就是您的视图没有更新的原因。从服务器上删除后,您还需要从客户端代码中删除它:

// all items in an array
$scope.items = [item1, item2];
// delete an item
$scope.deletecode = function (id) {
    name = '';
    if (confirm("are you sure to Delete the name")) {
        $http({
            method: 'POST',
            url: 'rohit.php',
            data: {
                "name": name,
                "id": id,
                "delete": "true"
            },
        }).
        success(function (data, status, headers, config) {
            alert("data deleted successfully");
            // at this point, the item has been deleted from your server
            // remove it from $scope.items as well
            // removes 1 item at index idx
            $scope.items.splice(idx, 1);
        }).
        error(function (data, status, headers, config) {
            alert("Unable to load data.");
        });
    } else {
        alert("Data deletion cancelled by user ... ");
    }
};

我不确定你是否真的想刷新页面。如果正确删除项目,将更新视图而无需刷新页面。视图未更新,我如何更新视图,我正在发布删除功能您不能使用
location.reload()?简单的javascript方法如果您必须重新加载,只需像@Satpal建议的那样使用
location.reload()
。刷新页面后,您的Angular将完全重新初始化。感谢Satpal和xbonez,+1 upvoteHey什么是idx,在我的情况下是id?idx是您要删除的数组中项目的索引。你需要跟踪它。因此,如果要删除第一项,
idx=0
。如果您要删除最后一个元素,
idx=$scope.items.length-1
我将从php文件中获取数据,并将其存储到
$scope.samples=data
中。它将提供用户id和名称,删除后我将执行
$scope.samples.splice(user\u id,1)
。这有什么问题?
用户id
不是索引。例如,如果数组中的第一个元素是
user\u id=1337
的用户,则索引仍然为0。如果没有索引,则循环数组并搜索索引以使其正常工作。