Как добавить новое вычисляемое свойство в объект knockoutjs во время выполнения?

У меня есть программа, как показано ниже в нокауте JS

<input type="text" data-bind="value:firstName" />
<input type="text" data-bind="value:lastName" />
<p data-bind="text:fullName"></p>
    <script type="text/javascript" language="javascript">
        // Here's my data model
        var Person = function (id, first, last) {
            this.id = ko.observable(id);
            this.firstName = ko.observable(first);
            this.lastName = ko.observable(last);


        };

        Person.prototype.fullName = ko.computed(function () {
            return this.firstName() + " " + this.lastName();
        }, Person);


        ko.applyBindings(new Person(1, "kapil", "Garg"));
    </script>

Я получаю сообщение об ошибке, что this.firstName() не является функцией. Как я могу добавить новое свойство компьютера, как это?

2 ответа

Использование

 <input type="text" data-bind="value:firstName()" />


  <input type="text" data-bind="value:lastName()" />

Вы пропустили паратез, поэтому нокаут жалуется.

Вы пропустили ключевое слово "new" при создании экземпляра вашей ViewModel

Другие вопросы по тегам