Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.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 在knockout JS中绑定复杂模型_Javascript_Jquery_Knockout.js_Knockout 2.0 - Fatal编程技术网

Javascript 在knockout JS中绑定复杂模型

Javascript 在knockout JS中绑定复杂模型,javascript,jquery,knockout.js,knockout-2.0,Javascript,Jquery,Knockout.js,Knockout 2.0,我有以下JSON复杂对象 {"User": { "$id":"2", "Id":0, "FirstName":null, "LastName":null, "Email":null, "EmailConfirmed":false, "PasswordHash":null, } } 如何在knockout js中绑定此对象。到目前为止,我已经使用类似这样的东西将属性与输入字段绑定 <input required cla

我有以下JSON复杂对象

{"User":
    {
    "$id":"2",
    "Id":0,
    "FirstName":null,
    "LastName":null,
    "Email":null,
    "EmailConfirmed":false,
    "PasswordHash":null,
    }
}
如何在knockout js中绑定此对象。到目前为止,我已经使用类似这样的东西将属性与输入字段绑定

<input required class="form-control" data-bind="value: User.FirstName" type="text" />
当我通过JS调用提交时

var jsonData = ko.toJSON(userInfo);
对象jsonData显示类似FirstName的属性为null,但已写入公式值。 objectuserinfo将写入的值存储在公式中,我已经检查过了

应该是这样吗

function userModel() {
        var self = this;
        self.Password = ko.observable();
        self.User = ko.observable();
    }

    function UserViewModel(user) {
        this.FirstName = ko.observable(user.FirstName);
        this.LastName = ko.observable(user.LastName);
        // other properties
    }

    function bindData(data) {
        userInfo.Password(data["Password"]);
        userInfo.User(new UserViewModel(data["User"]));
    }

$(document).ready(function () {
        userInfo = new userModel();
        createUser();
        ko.applyBindings(userInfo);
    });

要使双向绑定起作用,您需要在视图模型上构建相同的可观察值层次结构

或者,您可以使用:

因为用户也是可观察的,所以您必须像这样更新绑定:

<input required class="form-control" data-bind="value: User().FirstName" type="text" />
输入{
显示:块;
保证金:5px0;
}
输入[只读]{
边界:无;
}

当前值:

我已经更新了我的帖子。这两种方法都没有在复杂对象中映射我的属性。我做错什么了吗?
<input required class="form-control" data-bind="value: User().FirstName" type="text" />