Как добавить новое вычисляемое свойство в объект 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