【问题标题】:Best practice for replacing ng-include when upgrading from angularjs to angular?从 angularjs 升级到 angular 时替换 ng-include 的最佳实践?
【发布时间】:2020-05-07 18:47:33
【问题描述】:

令我沮丧的是,angular 不再支持 ng-include 指令。我的代码库使用了数百个共享的部分 html 文件。我似乎找不到任何文档。任何人都可以指出正确的方向。最好的做法是对每个 html 文件进行组件化吗?

【问题讨论】:

    标签: angularjs angular angularjs-ng-include


    【解决方案1】:

    您可以通过传递TemplateRef 来使用ngTemplateOutlet 指令来替代ng-include 的角度。这里我提到了一个示例代码。

    @Component({
      selector: 'child',
      template: `
        <div>
          child template which includes myTemplate
          <ng-container [ngTemplateOutlet]="myTemplate"></ng-container>
        </div>`
    })
    export class ChildComponent {
      @Input() myTemplate: TemplateRef<any>;
    }
    
    
    @Component({
      selector: 'app-root',
      template: `
        <p>Parent</p>
        <child [myTemplate]="myTemplate"></child>
        <ng-template #myTemplate>hi julia template!</ng-template>
      `
    })
    export class AppComponent {
      @ViewChild('myTemplate', {read: TemplateRef}) myTemplate: TemplateRef<any>;
    }
    

    【讨论】:

    • 这就是我害怕的。谢谢。
    • 有帮助吗?@blankpage985
    • 也许我没有以最好的方式解释。我可能有 1000 个多次使用的 html 文件。我目前使用 ng-include 显示它们。我想知道 Angular 团队会建议我做什么来替换我的 ng-includes,因为它们不再受支持。听起来答案是为每个组件创建一个组件(我使用了组件化这个词)。这将花费我很长时间,所以我只是想在开始之前确保这是正确的方向。不知道我是否可能遗漏了什么。 @Sunny
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-06
    • 1970-01-01
    • 2010-12-17
    • 1970-01-01
    • 2010-09-15
    相关资源
    最近更新 更多