NativeScript UI-Builder



我尝试构建一个简单的类似表单的UI,我想动态地添加多个textfield的行。我用XML和JS构建了一个自定义组件,因为在这些TextFields(开始、结束、持续时间)中有一些交互。

我是一个初学者在NativeScript,但我得到了我的数据绑定和事件结构。我能够通过ui/builder添加我的自定义组件。我完全卡住的地方是获得"选项/参数"到这个组件实例。我想要完成的是:添加我的自定义组件,并给它一些应该填充到组件observable中的数据。在稍后的(保存)操作中,我希望能够从我的"主"视图中检索这些数据。

结构是这样的:

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"

var componentModel = new Observable({
    label:      "",
    start:      "",
    end:        "",
    duration:   ""
});
exports.onLoad = function(args){
    var container = args.object;
    container.bindContext = componentModel;
};

我试图通过exports.componentModel和地址vma.componentModel从main导出组件模型。但是vma是一个视图,而不是"js模块"。我真的被困住了,没有找到任何类似我的场景的例子。

谁能给我指出正确的方向,我怎么才能做这件事正确(或任何)的方式?

谢谢!

所以这个问题的答案很简单:阅读文档:)

有一个选项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;
};

我希望这对你有帮助!

相关内容

  • 没有找到相关文章

最新更新