Я пытаюсь показать некоторые данные на экране с помощью AngularJS, ASP.NET и JSON.NET. Когда я звоню $.getJSON
, он возвращает обычный JSONArray, но когда я помещаю данные в это .variablename внутри моего углового контроллера, данные меняются, а Angular не отображает его на мой взгляд.Угловые изменения JSON string
Модель
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
});
}
Угловое 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 асинхронно, поэтому вы должны установить свои данные в функцию успеха, а не назначать ее самой функции. – Claies