複数のTextFieldで構成されるカスタムコンポーネントを作成しようとしています。このコンポーネントはObservableを介して内部的にtwoWayデータバインディングを使用する必要があります。しかし、私はそれを働かせることができません。Nativescript UI Builderとデータバインディング
main.js start
に元々
exports.loaded = function(args){
var page = args.object;
page.bindingContext = model;
var outerContainer = page.getViewById('outerContainer');
model.vma = new Observable({
label: "NiceLabel"
});
var vma = durationRow.init({
model: model.vma
});
outerContainer.addChild(vma);
};
ウィジェット/ durationrow.js
exports.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;
}
データ、end
は、duration
フィールドは、私のXML-レイアウトさビューのtext
性質に挿入されます。しかし、モデルの変更は、最初のレンダリング後にUIに伝播することはありません。
私はXMLとこのJSベースのデータバインディングでtext={{ start }}
というXMLベースのデータバインディングを試しました。どちらも "初期レンダリング"でのみ動作し、更新はプロモートされません。
提案がありますか? ありがとう!