с помощью Дюрандаль/требует/Breeze/KNOCKOUTветров не обнаруживают изменения
Когда я делаю изменение значения в текстовом поле в таблице. бриз не обнаруживает изменения. manager.hasChanges() всегда возвращает false. Почему ветер не находит эти изменения?
Контроллер
[HttpGet]
public object Lookups()
{
var categories = _contextProvider.Context.KMS_Categories;
var tags = _contextProvider.Context.KMS_Tag;
return new { categories, tags };
}
получение данных
var manager = configureBreezeManager(),
EntityQuery = breeze.EntityQuery;
return EntityQuery.from('Lookups')
.using(manager).execute()
.fail(queryFailed);
сохранить изменения функционируют
var saveChanges = function() {
return manager.saveChanges()
.then(saveSucceded)
.fail(saveFailed)
function saveSucceded(saveResult) {
log('Saved data successfully', saveResult, true);
}
function saveFailed(error) {
var msg = 'Save failed: ' + error.message;
logError(msg, error);
error.message = msg;
throw error;
}
}
Таблица отображения данных и где изменяется
<table class="table table-bordered table-hover table-striped table-condensed">
<thead>
<tr>
<th>Tags</th>
</tr>
</thead>
<tbody data-bind="foreach: adminTags">
<tr>
<td ><input class="form-control" data-bind="value: $data.Tag()" /></td>
</tr>
</tbody>
</table>
+1 для деталей и скрипки! – GETah
Спасибо, что сработал. Любая идея, почему он не будет записывать дополнение к ko.observablearray? var t = {TagID: adminTags(). Length + 1, тег: newTag()}; adminTags.push (t); – user1813251
Если ваш 'adminTags' является наблюдаемым массивом, тогда' adminTags.push (t); 'должен работать нормально ... поэтому ваша проблема находится где-то в другом месте – nemesv