使用durandal / require / 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>
您的绑定不正确,您需要写 $data.Tag
<input class="form-control" data-bind="value: $data.Tag" />
通过编写,$data.Tag()
您不会绑定到可观察属性本身,而是直接绑定到其基础值,这使绑定实际上仅是单向的。
演示JSFiddle。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句