使用TypeScript构建我自己的NativeScript应用程序并使用外部Telerik模块

时间:2015-05-22 10:10:49

标签: telerik typescript nativescript

我正在构建一个简单的NativeScript应用程序,并尝试使用TypeScript基本代码。

我在OSX下使用Sublime Text 3.

通过查看演示应用程序,我意识到tns_modulesNativeScript存储库匹配,因此我将其作为Git子模块添加到我的app/文件夹中,然后对其进行编译({{ 1}})。这是集成这些模块的错误方法吗?

然后我意识到我不能只运行由npm i && grunt文件构成的tns emulate android我的应用程序:我也必须编译它们。所以我设置了一个Grunt任务,但是处理依赖关系并不容易。我最后在.ts中使用了Gruntfile.coffee

app/

它适用于简单的代码,例如通过编写:

,我可以扩展像module.exports = (grunt) -> grunt.loadNpmTasks 'grunt-typescript' grunt.config 'typescript', build: src: [ '**/*.ts' '!*_modules/**' ] options: references: [ 'tns_modules/bin/dist/definitions/**/*.d.ts' ] target: 'es5' sourceMap: false declaration: false module: 'commonjs' noResolve: true 这样的模块
Observable

然后我使用import observable = require("data/observable"); class Activities extends observable.Observable { //... } 进行编译(grunt文件与.js文件一起创建)并使用.ts(使用Genymotion模拟器)运行。

这是我开发的正确架构吗?当我使用Telerik平台时,编译过程是隐藏的,所以我不确定我做得对。

现在我正试图直接在页面的XML文件中使用Telerik的side-bar模块,方式they do it

tns emulate android

但是我收到了这个错误:

  

E / TNS.Native(2456):TypeError:无法读取未定义的属性'android'   E / TNS.Native(2456):文件:“/ data / data / target.nativescript.scmobile / files / app /。/ tns_modules / bin / dist /apps / TelerikNEXT / TelerikUI / side-bar,line:39,column :39

对应于:

<Page xmlns="http://www.nativescript.org/tns.xsd" loaded="pageLoaded" xmlns:tsb="./tns_modules/bin/dist/apps/TelerikNEXT/TelerikUI/side-bar">
    <tsb:SideBar title="MyApp">
        ...

知道我应该如何包含这些模块吗?请注意,我是移动设备的新手。

1 个答案:

答案 0 :(得分:1)

他们在示例中使用的侧边栏是(付费)controller from Telerik

因此,需要下载并添加tns library add {ios|android} /path/to/the/sidebar

  

此命令将从指定的共享库文件夹中读取project.properties文件,并在项目中添加对它的引用。如果共享库依次引用其他项目,那么这些项目将以递归方式包含在内。因此,这将创建一个新的文件夹lib,它与已有的应用程序和平台同步。