我使用淘汰賽組件構建了不同的局部視圖搜索視圖擁有自己的視圖模型:Knockout如何訂閱其他視圖模型的屬性?
- 搜索字段
- 過濾
所以,搜索領域的視圖模型看起來是這樣的:
define(["knockout", "text!./search-field.html"], function (ko, templateMarkup) {
function SearchFieldVM(params) {
this.query = ko.observable("");
}
return { viewModel: SearchFieldVM, template: templateMarkup };
}
和過濾視圖模型看起來像:
define(["knockout", "text!./filter.html"], function (ko, templateMarkup) {
function FilterVM(params) {
this.categories = ko.observableArray();
this.currentCategory = ko.observable();
}
return { viewModel: FilterVM, templateMarkup };
}
我有那麼搜索VM:
define(["knockout", "text!./search.html"], function(ko, templateMarkup) {
function SearchVM(params) {
this.currentQuery = ko.observable();
this.currentCategory = ko.observable();
}
return { viewModel: SearchVM, template: templateMarkup };
}
好了,所以這裏的東西。每當在SearchFieldVM中更改查詢可見時,我希望在SearchVM中更改currentQuery可觀察。
對於currentCategory也是如此。
比方說,我的搜索視圖的樣子:
<search-field></search-field>
<filter></filter>
如何我後來聽在搜索領域組件的查詢可觀察和過濾組件的currentCategory觀察到,這樣的SearchVM注意到這些變化?
聽起來像其中一個人需要知道另一個。確定哪種方式最符合您的需求,然後將一個視圖模型傳遞到另一個視圖模型中 –
這是如何在構建組件時實現的? – Ekenstein
我不確定(因此評論而不是答案),組件是淘汰賽的一部分,我還沒有探討任何細節! –