Khi sử dụng loại trực tiếp, lợi thế của việc sử dụng các quan sát được tính chỉ đọc thay vì các hàm đơn giản là gì?Loại bỏ: chức năng quan sát được so với chức năng
Hãy viewmodel constructor và html đoạn sau, ví dụ:
var ViewModel = function(){
var self = this;
self.someProperty = ko.observable("abc");
self.anotherProperty = ko.observable("xyz");
self.someComputedProperty = function(){
return self.someProperty() + self.anotherProperty();
};
};
<input data-bind="value: someProperty"/>
<input data-bind="value: anotherProperty"/>
<p data-bind="text: someComputedProperty()"></p>
Mọi thứ ở đây dường như làm việc như bạn mong muốn, như vậy là có một lý do tại sao tôi thay vì nên sử dụng:
var ViewModel = function(){
var self = this;
self.someProperty = ko.observable("abc");
self.anotherProperty = ko.observable("xyz");
self.someComputedProperty = ko.computed(function(){
return self.someProperty() + self.anotherProperty();
});
};
<input data-bind="value: someProperty"/>
<input data-bind="value: anotherProperty"/>
<p data-bind="text: someComputedProperty"></p>
Tôi nhận thấy rằng tài liệu tại http://knockoutjs.com/documentation/computedObservables.html nói rằng "... các ràng buộc khai báo được thực hiện đơn giản như các quan sát được tính toán", vậy điều đó có nghĩa là tôi cần sử dụng chúng một cách rõ ràng trong các kiểu xem của tôi không?
Câu trả lời hay: cảm ơn! – Duncan
Câu trả lời hay. Đôi khi tôi sử dụng một hàm thay vì tính toán khi tôi MUỐN toàn bộ logic được thực thi mỗi lần. –
Làm thế nào để nó biết rằng một quan sát tính toán phụ thuộc vào một quan sát khác, khi tất cả tôi thông qua nó là một chức năng? nó phân tích hàm đó! - thời gian để đọc mã nguồn knockout tôi đoán – zod