我有相当困难的结构,所以我需要将可观察变量从主视图传递给组件,它将把它传递给另一个组件。
当observable从ajax调用获取数据时,在开始时它在最后一个组件中是未定义的。
如何正确传递?
<component1 params="data: $component.data"></component1>
.ctor
constructor(params: any) {
this.data = params.data;
}
.ctor
constructor(params: any) {
this.data = params.data; // here it is undefined
}
所有组件中的所有变量都声明为observables
情况就像这个sample。我怎样才能看到更改后的文字?
答案 0 :(得分:0)
首先,您的子组件必须设置为在其viewModel定义中接受参数。
ko.components.register('myComponent', {
viewModel: function(params){
var self = this;
self.myObservable = params.data;
return this;
}
...
然后,根据此duplicate question,您可以在花括号中传递参数,如:
<myComponent params="{ data: $data.myParameter}"></myComponent>
工作示例:jsFiddle