2016-04-12 38 views
2

根据angular/material2 site,可以使用类似npm install @angular2-material/checkbox的命令安装组件软件包。使用适用于Angular2的材料设计软件包

当我使用此命令时,@ angular2-material/checkbox文件夹没有复选框元素的checkbox.ts文件。相反,它有一个checkbox.d.ts文件,它声明了一个名为MdCheckbox的常规类。这不是一个组件,所以我无法在我的Angular2模板中访问它。

当我下载完整的angular/material2压缩文件时,src文件夹包含checkbox.ts,它将MdCheckbox定义为一个组件。那么npm包或GitHub存档有问题吗?

回答

3

总之,没有没有问题。 checkbox.d.ts文件不是组件文件。这只是一个declaration file。具有该组件的实际文件是checkbox.js,它已被转换为javascript。

为了使用它,“假设你有SystemJS作为你的模块加载器,这是默认的”。在您的index.html

System.config({ 
    map:{ 
     '@angular2-material/checkbox':'node_modules/@angular2-material/checkbox' 
    }, 
    packages: { 
     '@angular2-material/checkbox': { 
     format: 'cjs', 
     defaultExtension: 'js', 
     main: 'checkbox.js' 
     }, 
     app:{...} 
    } 
    }); 

,然后在您的组件:

import {MdCheckbox} from '@angular2-material/checkbox'; 
+0

我试着用@ angular2材料/编译复选框,但我得到了一个“错误TS1110:型号预计”是否有任何使用声明文件的示例项目? – user934904

+0

@ user934904声明文件通常由IDE使用。为什么你的意思是“用@ angular2-material/checkbox编译”,你的意思是从'@ angular2-material/checkbox'import'{MdCheckbox};'? – Abdulrahman

+0

@ user934904我能够提出你提到的问题。它在'checkbox.d.ts'第22行:'align:'start'| 'end';'这只是一个错字_probably_,不应该阻止文件编译为javascript。 – Abdulrahman