有没有办法在Angular-CLI上运行没有打字的库?
就我而言,我正在尝试安装k-frame以使用aframe-template-component
并通过documentation了解我必须创建一个typings.d.ts
文件才能使用它使用TypeScript。根据{{3}}问题,我尝试了不同的选项,但我无法生成文件或直接在项目中导入。
我也试过运行并安装dts-gen
,但我收到以下错误:
组件尝试在AFRAME可用之前注册
这意味着我必须首先注册A帧。由于我被困了一段时间,你对如何解决以下问题有所了解吗?提前感谢您的回复!
答案 0 :(得分:3)
目前这不是一件容易的事。
我用AngularCli尝试过。我使用ng new
创建了一个新项目,我已按照以下步骤操作:
ng new kframetest
使用以下方式安装aframe
和aframe-template-component
npm install aframe aframe-template-component --save
由于(zone.js和A-frame) catch attributeChangedCallback
,您需要在zone.js之前加载A帧。然后(在polyfills.ts
文件中)我添加了:
import 'aframe';
import 'aframe-template-component';
在import 'zone.js/dist/zone';
使用kframe sample作为模板创建一个简单的组件。
为了让Angular可以解析特殊的html标签,例如<a-entity>
,您必须使用CUSTOM_ELEMENTS_SCHEMA
属性向NO_ERRORS_SCHEMA
添加NgModule
和schemas
:
schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA]
运行该应用程序。
现在你可以在控制台中看到A-frame正在运行:
在场景之前将A-Frame
script
标记放在HTML 的head
中,以确保A-Frame的所有内容在从HTML中使用之前都已正确注册aframe-master.js:75646 A-Frame Version: 0.5.0 (Date 10-02-2017, Commit #bf8b8f9) aframe-master.js:75647 three Version: ^0.83.0 aframe-master.js:75648 WebVR Polyfill Version: dmarcos/webvr-polyfill#a02a8089b
但最大的问题是Angular尝试解析HTML并且他不理解aframe模板语法,你会遇到这样的错误:
未处理的承诺拒绝:模板解析错误: 分析器错误:
#
中[src: #boxesTemplate]
中第6列的意外标记KFrameTestComponent
</a-assets> <a-entity [ERROR ->]template="src: #boxesTemplate" data-box1color="red" data-box2color="green" data-box3color"): KFrameTestComponent@10:12
嵌入式模板上的任何指令都未使用的属性绑定
中src
。确保属性名称拼写正确,并且所有指令都列在@NgModule.declarations
。</a-assets>
我一直在搜索没有Angular解析的添加html,但我没有找到...
我已经尝试将模板添加到索引html中,它似乎有效,但我知道这不是您想要的情况。
您可以从此处获取代码:https://gitlab.com/jros/angularcli-kframe