我相當新的Knockout.js,但我已經成功地將幾個CRUD模板放在一起,與簡單的WebAPI服務交互。現在我想轉向更復雜的結構,並且我已經癱瘓了一個相當普遍的情況:單個html表單上的多個下拉列表。Knockout.js在一個視圖模型中綁定多個ObservableArrays的最佳實踐
我明白我可以建立一個ViewModel像這樣:
function myViewModel() {
var self = this;
self.selectedCustomer = ko.observable();
self.customers = ko.observableArray([]);
self.selectedState = ko.observable();
self.states = ko.observableArray([]);
self.selectedProduct = ko.observable();
self.products = ko.observableArray([]);
}
然後我會每個選擇列表綁定到相應的屬性。雖然這應該起作用,但我覺得有更好的方法來處理它。我想過把每個列表分解成它自己的ViewModel,但這看起來像是過度殺傷。我希望儘早融入良好的MVVM習慣,並期待使用這些新技術重建舊系統,因此任何方向都會很棒。
這看起來像一個很好的路徑探索。所以在這種情況下,每個組件都可以作爲一個微型虛擬機,它包含每個組件的相關屬性。這可能會擴展(如果還沒有的話),以便爲選擇列表組件提供一個通用虛擬機,用於傳遞可觀察對象中的選擇列表組件,並且組件將它鏈接起來。謝謝! – termproto