Невозможно записать значение в ko.computed, если вы не укажете опцию 'write'

Я пытаюсь использовать вычисленные свойства в других вычисляемых свойствах, и когда я запускаю код, я получаю следующую ошибку в консоли.

Невозможно записать значение в ko.computed если вы не укажете опцию "запись"

function AppViewModel() {
    var self = this; 
    self.firstName = ko.observable('rahul');
    self.lastName = ko.observable('sharma');
    self.fullName = ko.computed(function() {
      return self.firstName() +' ' + self.lastName();
    });
    self.upperFullName = ko.computed(function() {
      return self.fullName.toUpperCase();
    });  
}
// Activates knockout.js
ko.applyBindings(new AppViewModel()); 

а вот HTML-код и JS скрипку

<p><input data-bind="value: firstName"></p>

<p><input data-bind="value: lastName"></p>

<p><input data-bind="value: fullName"></p>

<p> <span data-bind="text: upperFullName"> </span> </p>

1 ответ

Решение

self.fullName - это функция, возвращающая вычисленное значение.

self.upperFullName = ko.computed(function() {
  return self.fullName().toUpperCase();
});  

обратите внимание на круглые скобки!

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