[英]Unable to bind data get from database in view using angularJS
我试图从数据库中获取数据并将其绑定到使用AngularJS的视图中。 为此,我编写了一个WEM方法,如下所示:
[WebMethod]
public static string getname() {
SqlHelper sql = new SqlHelper();
DataTable dt = sql.ExecuteSelectCommand("select cust_F_name from customer");
Dictionary<string, object> dict = new Dictionary<string, object>();
object[] arr = new object[dt.Rows.Count];
for (int i = 0; i <= dt.Rows.Count - 1; i++) {
arr[i] = dt.Rows[i].ItemArray;
}
dict.Add(dt.TableName, arr);
JavaScriptSerializer json = new JavaScriptSerializer();
return json.Serialize(dict);
}
我用AngularJS称之为:
var DemoApp = angular.module('DemoApp', []);
DemoApp.factory('SimpleFactory', function ($http) {
return {
getCustomer: function () {
return $http.post('Home.aspx/getname', { name: "" });
}
};
});
DemoApp.controller('SimpleController', function ($scope, SimpleFactory) {
SimpleFactory.getCustomer().then(function(customer){
$scope.Customer =$.parseJSON( customer.d);
}, function(error){
// error handling
});
});
我这样绑定它:
<html xmlns="http://www.w3.org/1999/xhtml" data-ng-app="DemoApp">
<head runat="server">
<title></title>
</head>
<body data-ng-controller="SimpleController">
<form id="form1" runat="server">
<div>
Name<input type="text" data-ng-model="Name" />{{ Name }}
<ul>
<li data-ng-repeat="customerName in Customer | filter:Name">{{ customerName }}</li>
</ul>
</div>
</form>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular.min.js"></script>
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script src="Script/Home.js" type="text/javascript"></script>
</body>
</html>
但这给了我这个:
请告诉我如何从JSON对象获取唯一名称。
按照设计,promise仅使用一个参数调用回调。
因此,当使用.then(function(customer) {
,“ customer”实际上将引用一个promise对象而不是响应主体。promise对象具有以下属性:
DemoApp.controller('SimpleController', function ($scope, SimpleFactory) {
SimpleFactory.getCustomer().then(function(object){
$scope.Customer = object.data.d;
}, function(error){
// error handling
});
});
另外,您可以使用success
和error
,传递给这些函数的参数是传递给then方法的响应对象的结构化表示。
阅读更多: $ http docs
如果服务器返回有效的json,则无需执行parseJSON。 只使用结果
$scope.Customer =customer.d;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.