У меня есть внешний файл, в котором я хочу разместить свой нокаут, с этим кодом:
var ViewModel = function () {
var counties = ko.observableArray([]);
this.getCounties = function () {
$.ajax({
url: '/Search/ByCounty',
type: 'GET',
success: function (data) {
if (data && data.length > 0) {
for (var i = 0; i < data.length; i++) {
var obj = data[i];
counties.push(obj.CountyName);
}
}
},
error: function (error) {
console.log(error);
}
});
};
};
ko.applyBindings(new ViewModel());
Затем на странице просмотра MVC под названием search.cshtml я вызываю приведенный выше код следующим образом:
<button type="button" class="btn btn-primary" data-bind="click: getCounties">getCounties</button>
Похоже, что это подталкивает все данные в массив, а следующий аспект, который я хотел бы сделать, - это циклическое преобразование округов, вот так:
<table>
<thead>
<tr><th>Counties</th></tr>
</thead>
<tbody data-bind="foreach: counties">
<tr>
<td data-bind="text: CountyName"></td>
</tr>
</tbody>
</table>
Полученная ошибка:
Uncaught ReferenceError: Невозможно обработать привязку "foreach: function () {return counties}" Сообщение: графства не определены
Я не получаю, getCounties вызывается при событии clickтам так не может получить значения из массива?Я думаю, это как-то связано с областью видимости, но я не могу этого понять, я уверен, что есть очень простое объяснение