【发布时间】:2015-04-14 18:25:20
【问题描述】:
我正在尝试使用 AngularJS、ASP.NET 和 JSON.NET 在屏幕上显示一些数据。当我调用$.getJSON 时,它会返回一个普通的 JSONArray,但是当我将数据放入 Angular 控制器内的 this.variablename 中时,数据会发生变化,并且 Angular 不会在我的视图中显示它。
型号
public class Directory
{
public int Id { get; set; }
public string Name { get; set; }
public List<Note> Notes { get; set; }
public int ParentId { get; set; }
public List<int> DirectoryIds { get; set; }
public virtual Directory Parent { get; set; }
public virtual ICollection<Directory> Directories { get; set; }
}
.NET 控制器操作
public string GetDirectories()
{
var directories = db.Directories.Where(d => d.ParentId.Equals(0)).ToList();
return JsonConvert.SerializeObject(new { directorylist = directories }, Formatting.Indented,
new JsonSerializerSettings
{
ReferenceLoopHandling = ReferenceLoopHandling.Ignore
});
}
Angular JS
(function () {
var app = angular.module('notes', []);
app.controller('DirectoryController', function () {
this.directories = directories; //Check output 1
});
var directories = $.getJSON("/Directory/GetDirectories", function (data) {
return data; //Check output 2
});
})();
输出 1(大图 http://i62.tinypic.com/2ppd0kg.png)
输出 2
【问题讨论】:
-
您可能会考虑切换到角度资源或角度
$http.get()函数,而不是使用jquery函数;除此之外,两个框架都异步实现 get 函数,因此您应该将数据设置在成功函数中,而不是将其分配给函数本身。
标签: javascript asp.net asp.net-mvc angularjs json.net