我是AngularJs
新手并在网络表单中使用它
我的代码如下
var app = angular.module('demoApp', [])
app.controller('usrController', function ($scope, $http, $window) {
$scope.userdata = {};
var post = $http({
method: "POST",
url: "Index.aspx/GetData",
dataType: 'json',
data: {},
headers: { "Content-Type": "application/json" }
}).success(function (data, status) {
console.log(data);
$scope.userdata = data.d;
}).error(function (data, status) {
$window.alert(data.Message);
});
});
我的网络方法代码如下
[WebMethod]
public static string GetData()
{
DataTable dt = Helper.UserList("sp_GetSearchList");
string JSONString = string.Empty;
JSONString = JsonConvert.SerializeObject(dt).ToString();
return JSONString;
}
我的 JSONString 返回完美的 json,但我收到错误
类型错误: $http(...).成功不是一种功能
我在堆栈溢出上看到了很多答案,但没有一个真正解决这个问题。
扩展问题
使用以下代码后,它解决了我的问题
var app = angular.module('demoApp', [])
app.controller('usrController', function ($scope, $http, $window) {
$scope.userdata = {};
$http.post("Index.aspx/GetData", {}).
then(function (response) {
console.log(JSON.parse(response.data.d));
$scope.userdata = JSON.parse(response.data.d);
});
},
function(error) {
});
我的前端绑定是这个
<body data-ng-app="demoApp">
<form id="form1" runat="server">
<div data-ng-controller="usrController">
<table>
<tr>
<th>Sl No</th>
<th>User ID</th>
<th>Employee ID</th>
<th>Employee Name</th>
<th>Birth Date</th>
</tr>
<tr data-ng-repeat="data in userdata">
<td>{{data.ID}}</td>
<td>{{data.UserID}}</td>
<td>{{data.EmployeeID}}</td>
<td>{{data.EmpName}}</td>
<td>{{data.BirthDate}}</td>
</tr>
</table>
</div>
</form>
</body>
数据完美地出现在console.log
,但在前端没有绑定。
在我错的地方帮助我。提前致谢
在Angular 1.6中,$http
服务发生了变化:你不能再使用.success
和.error
了。
请改用.then
。从$http
文档中:
$http({
method: 'GET',
url: '/someUrl'
}).then(function successCallback(response) {
// this callback will be called asynchronously
// when the response is available
}, function errorCallback(response) {
// called asynchronously if an error occurs
// or server returns response with an error status.
});
应该是这样的
$http({
method: "POST",
url: "Index.aspx/GetData",
dataType: 'json',
data: {},
headers: { "Content-Type": "application/json" }
}).then(function(result) {
//Success
}, function(error) {
//Error
});
试试下面。
$http.post( "Index.aspx/GetData", {} )
.then(function(response) {
$scope.userdata = response.data;
});