这是场景:

我目前有一个看起来像下面的对象:

javascript - 从 knockout 对象访问属性-LMLPHP

运行modal.PersonInfo之后,我得到从第3行开始返回的对象。请参见上图。


  问题:在HTML中,如何调用FirstNameLastName


错误状态:

Uncaught ReferenceError: Unable to process binding "text: function (){return PersonInfo().FirstName}" Message PersonInfo is not defined

JavaScript:

function Person() {
    var modal = this;
    modal.PersonInfo = ko.observable('');

    modal.setData = function (id) {
        $.ajax({
            type: "GET",
            url: '/Person/UserInformation?id=' + id,
            contentType: "application/json; charset=utf-8",
            success: function (data) {
                modal.setPersonInfo(data);

                $('#person-modal').modal('show');
            }
        });

        modal.setPersonInfo = function (data) {
            modal.PersonInfo = data;
        }
    }
};


的HTML
我的想法是我可以执行以下操作:

<p data-bind="text: PersonInfo().FirstName"></p>
<p data-bind="text: PersonInfo().LastName"></p>

最佳答案

该行替换可观察值,而不是分配值:

modal.PersonInfo = data;


尝试以下方法:

modal.PersonInfo(data)


还有一个放错了的右括号:model.setPersonInfomodel.setData内部

请参见working demo

09-11 07:51