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。如果没有索引,则循环数组并搜索索引拼接后编码>以使其正常工作。