我尝试构建一个由多个textfield组成的自定义组件。这个组件应该在内部通过Observable使用双向数据绑定。但我就是不能让它工作。
<标题> main.js h1> idget/durationrow.jsexports.init = function(options){
model = _.isUndefined( options )
? model
: options.model;
_.defaults(model, {
label: "no data given",
start: "",
end: "",
duration: "30"
});
var durationRow = builder.load({
path: 'widgets/durationRow',
name: 'durationRow',
});
durationRow.getViewById("startText").bind({
sourceProperty: "start",
targetProperty: "text",
twoWay: true },
model);
return durationRow;
}
原来在start
, end
, duration
字段中的数据被插入到我的xml布局视图的text
属性中。但是在初始的"渲染"之后,对模型的更改不会传播到UI中。
我尝试了基于XML的数据绑定通过text={{ start }}
在我的XML和这个基于js的数据绑定。两者都只在"初始渲染"中工作,没有更新被提升。
有什么建议吗?谢谢!
标题>好吧,我搞错了。我建立了整个init
的东西,因为我不能得到"数据"到我的"小部件"。毕竟,这一切都是基于一个简单的小错误…我试着用bindContext
代替bindingContext
和所有的地狱…
所以工作解决方案:
main.js
var row = builder.load({
path: 'widgets/durationRow',
name: 'durationRow',
attributes: {
bindingContext: rowData
}
});
现在在durationRow.js中不需要任何其他内容。所有对rowData
的js访问都是通过bindingContext完成的,一切都像魅力一样工作:)