gpt4 book ai didi

javascript - Breeze 没有检测到变化

转载 作者:行者123 更新时间:2023-11-29 19:44:05 25 4
gpt4 key购买 nike

使用 durandal/require/breeze/knockout

当我更改表格文本框中的值时。 Breeze 没有检测到变化。 manager.hasChanges() 总是返回 false。为什么 Breeze 没有发现这种变化?

Controller

    [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>

最佳答案

你的绑定(bind)不正确,你需要写$data.Tag

<input class="form-control" data-bind="value: $data.Tag" />

通过编写 $data.Tag(),您并没有绑定(bind)到您的可观察属性本身,而是直接绑定(bind)到它的基础值,这使得您的绑定(bind)有效地单向 只有。

演示 JSFiddle .

关于javascript - Breeze 没有检测到变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21142404/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com