angular - 如何修改带有 Angular 示意图的 HTML 文件

标签 angular angular-schematics

假设我们有一个现有的 Angular 组件,包括 menu.component.html :

<ul>
  <li><a href="/home">home</a></li>
  <li><a href="/about">about</a></li>
</ul>

目标是在“关于”之后添加一个带有 Angular 示意图的新链接

 <li><a href="/contact">contact</a></li>

有什么想法吗?

最佳答案

你可以这样做:

export function myComponent(options: any): Rule {
  return (tree: Tree, _context: SchematicContext) => {
    const content: Buffer | null = tree.read("./menu.component.html");
    let strContent: string = '';
    if(content) strContent = content.toString();

    const appendIndex = strContent.indexOf('</ul>');
    const content2Append = '    <li><a href="/contact">contact</a></li> \n';
    const updatedContent = strContent.slice(0, appendIndex) + content2Append + strContent.slice(appendIndex);

    tree.overwrite("./menu.component.html", updatedContent);
    return tree;
  };
}

请注意,这是一个非常原始的解决方案。 nodejs 中有 DOM 解析器库,可以让你的生活更轻松 (jsdom)。您可以将 content2Append 变量作为输入并为您的用例清理它。

关于angular - 如何修改带有 Angular 示意图的 HTML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51365391/

相关文章:

angular 2 动画在 *ng 中仅用于一个元素

angular - 在 Nativescript 和 Angular Schematics 的共享代码中找不到模块

angular - 通过 angular-cli 生成的 Angular 组件的自定义项目级模板

angular - 如何用 Angular 示意图覆盖文件?

javascript - Angular 5 原理图模板

Angular 示意图 : trustedSubscriber. _addParentTeardownLogic

javascript - 使用 typescript 将 Json 转换为数组 Angular 2 js

javascript - 如何使虚拟滚动与 ionic 2 中的 ngFor 指令一起工作

javascript - 标签 &lt;script&gt; 内的代码在 VScode、Angular 的 component.html 文件中不起作用

javascript - Angular 2 : new router and templateProvider practice from Angular 1