使用angularjs控制器获取json数据

使用angularjs控制器获取json数据,json,angularjs,Json,Angularjs,在下面的代码中,我使用javascript序列化程序将数据转换为json对象。如何使用$http.get将json对象提取到名为UserCntrl的控制器,以便稍后在ng repeat中使用它 [WebMethod] [ScriptMethod(ResponseFormat = ResponseFormat.Json)] public string GetUserDetails() { DataTable dt = new DataTable();

在下面的代码中,我使用javascript序列化程序将数据转换为json对象。如何使用$http.get将json对象提取到名为UserCntrl的控制器,以便稍后在ng repeat中使用它

    [WebMethod]
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
    public string GetUserDetails()
    {
        DataTable dt = new DataTable();
        using (SqlConnection con = new SqlConnection(GetConnectionString()))
        {
            using (SqlCommand cmd = new SqlCommand("select UserID=id,Username=username,Mail=email from users", con))
            {
                con.Open();
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                da.Fill(dt);
                System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
                List<Dictionary<string, object>> rows = new List<Dictionary<string, object>>();
                Dictionary<string, object> row;
                foreach (DataRow dr in dt.Rows)
                {
                    row = new Dictionary<string, object>();
                    foreach (DataColumn col in dt.Columns)
                    {
                        row.Add(col.ColumnName, dr[col]);
                    }
                    rows.Add(row);
                }
                return serializer.Serialize(rows);
            }
        }
    }
[WebMethod]
[ScriptMethod(ResponseFormat=ResponseFormat.Json)]
公共字符串GetUserDetails()
{
DataTable dt=新的DataTable();
使用(SqlConnection con=newsqlconnection(GetConnectionString()))
{
使用(SqlCommand cmd=newsqlcommand(“选择UserID=id,Username=Username,Mail=email from users”,con))
{
con.Open();
SqlDataAdapter da=新的SqlDataAdapter(cmd);
da.填充(dt);
System.Web.Script.Serialization.JavaScriptSerializer serializer=新的System.Web.Script.Serialization.JavaScriptSerializer();
列表行=新列表();
字典行;
foreach(数据行dr在dt.行中)
{
行=新字典();
foreach(dt.列中的数据列列列)
{
行添加(列名称,dr[col]);
}
行。添加(行);
}
返回序列化程序。序列化(行);
}
}
}
而ul持有ng重复

 <ul>
      <li ng-repeat="item in items">
           {{item.Username}}
      </li>
 </ul>
  • {{item.Username}

您可能需要调整一些东西,但这应该是可行的。我将您的http请求抽象到一个工厂,以便您可以将其用于任何控制器

app(you have to adjust this to your app).factory('userFactory', function ($http) {
    var factory = {};
    factory.get = function () {
        return $http.get('your_rest_url', {}).then(function (resp) {
            console.log('Success', resp);
        }, function (err) {
            console.error('ERR', err);
        });
    };
});

var UsrCtrl = function ($scope, userFactory) {
    $scope.items = userFactory.get();
};