Я новичок в нокауте JS, я создаю таблицу отображения данных с каркасом нокаута и вызовом ajax.У меня Проблема с наблюдаемым массивом не должна получать значения и отображаться в таблице.Мой код:
$(function() {
var RacerModel = function() {
self.Categories = ko.observableArray([]);
self.Message = ko.observable("Data don't loaded");
self.GetCategories = function () {
$.ajax({
url: "data1.json",
cache: false,
type: "GET",
datatype: "json",
contenttype: "application/json;utf8"
}).done(function (data) {//self.Categories(ko.mapping.fromJS(data));
}).error(function (err) {
self.Message("Error! " + err.status);
});
}
console.log(JSON.stringify(data));
};
ko.applyBindings(RacerModel());
});
JSON Файл:
{"categories":[{"Id":1,"Name":"Learning","UrlSlug":"0-learning","Description":"learning"},
{"Id":2,"Name":"Topics","UrlSlug":"0-topics","Description":"posts"},
{"Id":3,"Name":"Shares","UrlSlug":"category-shares","Description":"shares"},
{"Id":4,"Name":"Projects","UrlSlug":"category-projects","Description":"project"}]}
Проблема в self.Categories = ko.observableArray ([]);не связывайте значение.Он всегда пуст и получил ошибку, как будто данные не определены.Как получить ko.observableArray ([]) имеет значение с помощью метода json.
Мой пример HTML-кода:
<tbody data-bind="foreach: Categories">
<tr>
<td><span data-bind="text: Name"></span></td>
<td><span data-bind="text: UrlSlug"></span></td>
<td><span data-bind="text: Description"></span></td>
</tr>
</tbody>