NaiveScript:如何将构建器模块与xml文件一起使用,而不是模板字符串

时间:2016-08-22 08:31:56

标签: nativescript

我有一个xml模板文件。我需要将其“转”为代码。添加一些属性,然后以编程方式添加到父容器。

XML模板(在真实的应用程序中要复杂得多,这只是例如):

<StackLayout id="{{ 'recipe_' + recipe_id }}">
   <Label text="{{ title }}"/>
   <Label text="{{ description }}"/>
   <Button text="Choose" onTap="onRecipeBtnTap"/>
</StackLayout>

代码:

let recipeCard = builder.parse("~/templates/recipe.xml") //<-- problem here
let slide = new slide.Slide()
slide.addChild(recipeCard)
slidesContainer.add(slide)

问题是构建器模块需要xml字符串而不是路径。所以,我想以某种方式将xml文件转换为字符串。请告知这里最好的方法。

2 个答案:

答案 0 :(得分:1)

好的,找到了怎么做。需要使用文件系统模块:

let template = fs.File.fromPath(__dirname + '/templates/recipe.xml')
let templateString = template.readTextSync()
let recipeCard = builder.parse(templateString)

答案 1 :(得分:0)

您可以使用"ui/builder"并简单地调用其load()方法,并传递要加载的xml的路径和名称。看看this示例,该示例展示了使用自己的代码(ts / js)加载XML。有关详细信息,请参阅documentation关于"ui/builder"