2016-08-17 4 views
2

複数のTextFieldの行を動的に追加したい、単純なフォームのようなUIを構築しようとしています。これらのTextFieldには相互作用がいくつかあるため(開始、終了、継続時間)、XMLとJSでカスタムコンポーネントを作成しました。NativeScript UI-Builder

私はNativeScriptのスターターですが、私は自分のデータバインディングとイベント構造を持っています。カスタムコンポーネントをui/builderで追加できました。私が完全に立ち往生しているところでは、このコンポーネントインスタンスに対して「オプション/引数」が得られています。 私が達成しようとしているのは、カスタムコンポーネントを追加し、Obsverableコンポーネントに埋め込むべきデータを与えることです。後で(保存)アクションで、私は "メイン"ビューからこれらのデータを取得できるようにしたいと思います。

私の構造は、このようなものです:私はexports.componentModel経由componentModelをエクスポートしようとした

var componentModel = new Observable({ 
    label:  "", 
    start:  "", 
    end:  "", 
    duration: "" 
}); 

exports.onLoad = function(args){ 
    var container = args.object; 
    container.bindContext = componentModel; 
}; 

main.js

exports.loaded = function(args) { 
    var page = args.object; 
    page.bindingContext = model; 

    var outerContainer = page.getViewById('outerContainer'); 

    var vma = builder.load({ 
     path: 'widgets/durationRow', 
     name: 'durationRow' 
    }); 

    outerContainer.addChild(vma); 
}; 

カスタムコンポーネント "durationRow.js" とmainからvma.componentModelにアドレスします。しかしvmaは "JSモジュール"ではないビューです。 私は本当に立ち往生していて、私のシナリオのような何かをしている例は見つかりませんでした。

正しい方向に誰かが私にこの物を正しい(または何か)方法でやり遂げる方法を教えてもらえますか?

ありがとうございました!

+0

解決しましたか?私は似たようなことをしようとしています。 – IvRRimUm

答えて

1

だから問題への答えは非常に簡単です:documentationを読む:)

そのために正確に使用することができますオプションattributesがあります。私はこれで終わった:

var row = builder.load({ 
    path: 'widgets/durationRow', 
    name: 'durationRow', 
    attributes: { 
     bindingContext: bindingModel 
    } 
}); 
container.addChild(row); 

そして、私がBindingContextをと私の「挿入」モデルを得ることができますロードされたウィジェットに:

exports.onLoad = function(args){ 
    page = args.object; 
    var model = page.bindingContext; 
}; 

私はこのことができます願っています!

関連する問題