Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 微风没有检测到变化_Javascript_Knockout.js_Breeze - Fatal编程技术网

Javascript 微风没有检测到变化

Javascript 微风没有检测到变化,javascript,knockout.js,breeze,Javascript,Knockout.js,Breeze,使用durandal/require/breeze/knockout 当我更改表中文本框中的值时。微风没有察觉到变化。hasChanges()始终返回false。为什么微风没有发现这种变化 控制器 [HttpGet] public object Lookups() { var categories = _contextProvider.Context.KMS_Categories; var tags = _contextProvider.

使用durandal/require/breeze/knockout

当我更改表中文本框中的值时。微风没有察觉到变化。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()
时,您并没有绑定到可观察属性本身,而是直接绑定到它的基础值,这使得您的绑定只能是单向的


演示。

谢谢你的帮助。你知道为什么它不会在ko.Array上增加一个吗?var t={TagID:adminTags().length+1,Tag:newTag()};adminTags.push(t);如果您的
adminTags
是一个可观察的数组,那么
adminTags.push(t)应该可以正常工作。。。因此,您的问题是在其他地方,它可以将其添加到数组中,但保存更改并不能在微风中拾取更改;您不能直接推入Breeze导航属性。Breeze依赖外键来建立关系,因此您需要执行类似于tag().adminId(admin.id())的操作;您将导航属性(外键)设置为管理员id,或者您可以将管理员直接传递到标记或w/e的admin属性中。仔细阅读博士论文我会关注哪个部分?假设我有一个标签列表ko数组是adminTags。实体名称KMS_标记由标记ID和标记组成。