我正在尝试使用角度示意图,以便用户创建组件时,示意图会自动创建一个模块,并向该模块和该组件添加一些自定义代码。
我现在遇到的最大问题是,即使您传递了完全相同的项目,我的默认逻辑示意图功能也无法访问与角度逻辑示意图相同的选项属性。
为了简单起见,这是我的默认功能:
export default function dynamic(options: ComponentOptions): Rule {
return chain([
externalSchematic('@schematics/angular', 'module', options),
externalSchematic('@schematics/angular', 'component', options),
(tree: Tree) => {
console.log(options.name);
return tree;
}
]);
}
很显然,您将options参数传递给了角度外部原理图。当您查看该代码时:
https://github.com/angular/angular-cli/blob/master/packages/schematics/angular/component/index.ts
它可以访问选项对象的许多属性,包括名称,项目,路径等。但是,当我在控制台上登录SAME选项对象或options.name时,它总是返回未定义状态。
对于我的自定义原理图,我将其称为:
ng g dynamic:dynamic test-this
应将选项的name属性设置为“ test-this”,因为使用该路径/名称创建的模块和组件没有任何问题。
所以我的问题是,如何获得这些选项属性?