2013-10-03 13 views
8

Tôi đang cố gắng sử dụng các thuộc tính được tính trong một thuộc tính được tính toán khác và khi tôi chạy mã, tôi nhận được lỗi sau trong bảng điều khiển.Không thể ghi giá trị cho ko.computed trừ khi bạn chỉ định tùy chọn 'write'

Không thể ghi một giá trị cho một ko.computed trừ khi bạn chỉ định một tùy chọn 'ghi'

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()); 

và đây là mã html và js fiddle link

<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> 
+0

lý do sử dụng thông tin nhập khi không thể ghi được? – Anders

+0

@Anders xin lỗi tôi đã không giúp bạn? tôi rất mới trong knockoutjs. – rahularyansharma

+0

@Anders OK đã nhận nó, bạn muốn nói rằng khi không có tính toán trên upperFullName tại sao tôi nên sử dụng này như computed.Yes bạn là đúng. nhưng làm thế nào tôi có thể hiển thị sau đó tên đầy đủ? – rahularyansharma

Trả lời

8

self.fullName là một chức năng, trở về giá trị tính toán.

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

để ý đến dấu ngoặc đơn!

+0

Cảm ơn người đàn ông, sẽ chấp nhận câu trả lời của bạn trong 5 phút. – rahularyansharma

Các vấn đề liên quan