0

観察可能なプロパティを持つオブジェクトがあります。

this.userToAdd = {
        ID: ko.observable(""),
        FirstName: ko.observable(""),
        LastName: ko.observable(""),
        Active: ko.observable(""),
        Email: ko.observable(""),
        Roles: ko.observableArray([])
    };

ボタンがクリックされたときにオブジェクトを更新しようとしています

$(document).on("click", ".edit", function () {

    var itemToUpdate = ko.dataFor(this);

    if (itemToUpdate.ID !== undefined) {
        //update observable
        vm.userToAdd.ID = itemToUpdate.ID;
        vm.userToAdd.FirstName = itemToUpdate.FirstName;
        vm.userToAdd.LastName = itemToUpdate.LastName;
        vm.userToAdd.Email = itemToUpdate.Email;
        vm.userToAdd.Active = itemToUpdate.Active;
        vm.userToAdd.Roles = itemToUpdate.Roles;
        //update form, and there must be a better way
        $('input[name="ID"]').val(itemToUpdate.ID);
        $('input[name="FirstName"]').val(itemToUpdate.FirstName);
        $('input[name="LastName"]').val(itemToUpdate.LastName);
        $('input[name="Email"]').val(itemToUpdate.Email);
        $('input[name="Active"]').val(itemToUpdate.Active);      
    }
});

入力フィールドが期待どおりの値で更新されているのを確認できるため実行されますが、モデルは更新されません。私は何を間違っていますか?また、私は使用しなければなりませんでした

$('input[name="ID"]').val(itemToUpdate.ID);

入力フィールドを更新するには

<input name="ID" type="text" placeholder="ID" data-bind="value: ID, valueUpdate: 'afterkeydown'" />         

監視可能なプロパティが更新されても、入力フィールドの値は更新されないためです。誰か助けてくれませんか?

4

1 に答える 1