【问题标题】:angular 4 and ng-template角度 4 和 ng 模板
【发布时间】:2017-03-28 12:55:20
【问题描述】:
我收到此警告:
The <template> element is deprecated. Use <ng-template> instead ("
[attr.tabIndex]="-1"
[ngClass]="{'k-item': true}">
[WARNING ->]<template *ngIf="template"
[templateContext]="{
当使用角度 4 时,
发布版本会处理这个问题吗?
谢谢
【问题讨论】:
标签:
angular
angular4
ng-template
【解决方案1】:
您需要注意这一点。您需要修改您的代码并更改所有出现的
<template>
到
<ng-template>
<template> 导致与 <template> 标记的其他用法发生冲突,因此 Angular 团队将其更改为使用 <ng-template> 用于 Angular 目的。这是一个突破性的变化,因此他们没有在 Angular2 中引入这种变化,而只是根据语义版本控制规则在 Angular4 中引入。
【解决方案2】:
只需使用<ng-template>,<template> 已从 Angular 4 中删除,因为它过于通用并会产生一些名称冲突,现在 Angular 团队决定一切都以 ng 开头,因为它应该是并且应该是。
在新模板中也可以使用if else,看下面的简单例子:
<ng-template #laoding>
<p>Loading...</p>
</ng-template>
<p *ngIf="auth | async; else laoding; let user">
{{user.username }}
</p>
【解决方案3】:
angular 4 中的 ng-template 可以用作-
<div *ngIf="isValid; else notValidCondition">
Welcome User
</div>
<ng-template #notValidCondition>Good Bye</ng-template>
【解决方案4】:
问题也可能不在您的代码中。例如,如果您使用的是 @angular/material@2.0.0-beta.2 的最新 beta 版本,则在使用某些材质组件时会得到这些。
如果这是您的消息的来源,请不要担心...据说现在任何一天都会发布解决此问题的新材料版本。
还需要说明的是,您看到的是弃用警告,不会在您的应用程序中产生错误。但在迁移到下一个主要版本之前,它们是需要更正的东西。