NativeScript UI-生成器
NativeScript UI-Builder
我尝试构建一个类似 UI 的简单表单,我想在其中动态添加多个 TextField 的行。我用 XML 和 JS 构建了一个自定义组件,因为在这些 TextFields(开始、结束、持续时间)中有一些交互。
我是 NativeScript 的初学者,但我的数据绑定和事件结构正在运行。我能够通过 ui/builder 添加自定义组件。我完全卡住的地方是让 "options/arguments" 进入这个组件实例。
我试图完成的是:添加我的自定义组件并为其提供一些数据,这些数据应该填充到组件 Obsverable 中。在稍后的(保存)操作中,我希望能够从我的 "main" 视图中检索这些数据。
我的结构是这样的:
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 导出 componentModel。但是 vma 不是 "JS-module" 的视图。
我真的被卡住了,没有找到任何像我的场景那样做的例子。
谁能给我指出正确的方向,我如何才能以正确的(或任何)方式做这些事情?
谢谢!
所以这个问题的答案很简单:阅读 documentation :)
有一个选项 attributes
可以完全用于此目的。我最终得到了这个:
var row = builder.load({
path: 'widgets/durationRow',
name: 'durationRow',
attributes: {
bindingContext: bindingModel
}
});
container.addChild( row );
在加载的小部件中,我将 "inserted" 模型作为 bindingContext:
exports.onLoad = function(args){
page = args.object;
var model = page.bindingContext;
};
希望对您有所帮助!
我尝试构建一个类似 UI 的简单表单,我想在其中动态添加多个 TextField 的行。我用 XML 和 JS 构建了一个自定义组件,因为在这些 TextFields(开始、结束、持续时间)中有一些交互。
我是 NativeScript 的初学者,但我的数据绑定和事件结构正在运行。我能够通过 ui/builder 添加自定义组件。我完全卡住的地方是让 "options/arguments" 进入这个组件实例。 我试图完成的是:添加我的自定义组件并为其提供一些数据,这些数据应该填充到组件 Obsverable 中。在稍后的(保存)操作中,我希望能够从我的 "main" 视图中检索这些数据。
我的结构是这样的:
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 导出 componentModel。但是 vma 不是 "JS-module" 的视图。 我真的被卡住了,没有找到任何像我的场景那样做的例子。
谁能给我指出正确的方向,我如何才能以正确的(或任何)方式做这些事情?
谢谢!
所以这个问题的答案很简单:阅读 documentation :)
有一个选项 attributes
可以完全用于此目的。我最终得到了这个:
var row = builder.load({
path: 'widgets/durationRow',
name: 'durationRow',
attributes: {
bindingContext: bindingModel
}
});
container.addChild( row );
在加载的小部件中,我将 "inserted" 模型作为 bindingContext:
exports.onLoad = function(args){
page = args.object;
var model = page.bindingContext;
};
希望对您有所帮助!