- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在使用 Angular 2-rc3 并有一个 Component
,我想应用嵌入,只是方式有点不同。这是我的组件:
import { Component, Input } from '@angular/core';
@Component({
selector: 'my-list',
template: `<ul>
<li *ngFor="let item of data">
-- insert template here --
<ng-content></ng-content>
</li>
</ul>`
})
export class MyListComponent {
@Input() data: any[];
}
我是这样使用它的:
<my-list [data]="cars">
<div>{{item.make | uppercase}}</div>
</my-list>
如您所见,我正在尝试定义一个将由我的组件使用的内联模板。现在这是非常错误的。首先,一个数据绑定(bind)异常表明它 can't read property 'make' of undefined
。它试图从我周围的组件中读取 item.make
,而不是从 MyListComponent
中读取。但即使我现在暂时禁用它:
<my-list [data]="cars">
<div>{item.make | uppercase}</div>
</my-list>
那么第二个问题出现了:
-- insert template here --
-- insert template here --
-- insert template here --
-- insert template here --
{item.make | uppercase}
因此 Angular 实际上并没有复制模板以在 *ngFor
中使用,它只是绑定(bind)元素并且它们最终与最后一个项目相关联。
我如何让它工作?
我在使用 AngularJS 时遇到了同样的问题,其中 petebacondarwin posted a solution to manipulate the DOM through compile ,这很棒。通过在我的组件中注入(inject) ElementRef
,我在 Angular 2 中也有这个选项,但是!一个很大的区别是 AngularJS 中的 compile
在数据绑定(bind)之前关闭,这意味着在模板中使用 {{item.make}}
没有问题。对于 Angular 2,这似乎是行不通的,因为 {{item}}
是预先解析的。那么最好的方法是什么?使用略有不同的符号 [[item]]
和字符串替换整个东西似乎不是最优雅的方式......
提前致谢!
//编辑:这是一个Plnkr重现问题。
最佳答案
拼出ngForTemplate
方法:
(从 Angular 4 开始,该元素现在称为 <ng-template>
。)
使用 <template>
在外部和内部组件中标记,而不是 <ng-content>
.
<li>
移动到 app.component html,<template>
此组件上有一个特殊的 'let-' 属性,它引用内部组件中的迭代变量:
<my-list [data]="cars">
<template let-item>
<li>
<div>{{item.make | uppercase}}</div>
</li>
</template>
</my-list>
内部组件有<template>
以及像这样使用 ngFor 的变体:
<ul>
<template #items ngFor [ngForOf]="data" [ngForTemplate]="tmpl">
-- insert template here --
</template>
</ul>
需要在组件代码中获取分配给 ngForTemplate 属性的“tmpl”变量:
export class MyListComponent {
@Input() data: any[];
@ContentChild(TemplateRef) tmpl: TemplateRef;
}
@ContentChild 和TemplateRef 是 Angular 位,所以需要导入
import { Component, Input, ContentChild, TemplateRef } from '@angular/core';
请在此处查看包含这些更改的 plunkr 的分支 plnkr .
对于您所述的问题,这不是最令人满意的解决方案,因为您将数据传递到列表中,所以您最好在外部使用 ngFor。此外,附加内容(文字“-- 在此处插入模板 --”)被删除,因此您想要显示它也必须在外部模板上。
我可以看到在内部组件中提供迭代(比如从服务调用)并且可能在代码中对模板进行一些操作时它可能很有用。
关于angular - 使用内联模板嵌入组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38010627/
我正在开发一个小型 Web 应用程序,其中有一个 object 元素(包含一个 embed),用于显示小型文档。 文档可以是 PDF 或纯文本文件 (.txt),我以 base64 字符串的形式从 W
我有一种小型语言,它基本上是 OCaml 的扩展(实际上它是 OCaml 子集的扩展,但这并不重要)。为了简化事情,我有一个“转义”表达式,可以将 OCaml 文字传输到我的语言中(因此您可以将任意
据我所知,我知道 embed tag用于嵌入来自 youtube 等网站的视频,object tag用于 Flash 视频和 video tags下HTML5 .但我很好奇这些标签的深入细节以及作为开
我假设您可以将 WebKit 嵌入到另一个桌面应用程序中并向其发送一个字符串,例如: Hello world! 它将显示在窗口内。 我的问题是,如果我将其压缩表示(JPEG 转储)加载到内存中,我该如
有没有一种可能的方式,我可以从youtube检索我的最新视频的列表(带有缩略图),使用cron作业将嵌入的代码存储在数据库中,这样我就可以在单独的页面上显示视频,而不是将用户引向youtube观看视频
最近我发现我的网站上嵌入的 YouTube 视频存在问题 - 全屏按钮不再起作用。确实有过一次。该按钮是可见的,但单击时没有任何反应。 我正在使用 Youtube Javascript API 将视频
在 Keras 内置函数中嵌入使用哪种算法?Word2vec?手套?其他? https://keras.io/layers/embeddings/ 最佳答案 简短的回答是都不是。本质上,GloVe 的
在 LSTM 上用于建模 IMDB 序列数据 ( https://github.com/fchollet/keras/blob/master/examples/imdb_lstm.py ) 的 ker
在机器学习中,通常用 one-hot-encoding 表示分类(特别是:名义)特征。 .我正在尝试学习如何使用 tensorflow 的嵌入层来表示分类问题中的分类特征。我有 tensorflow
我有一个使用 Storyboard的应用程序,我想在我的主视图中有一个 View ,并让它在场景中的不同 View 之间切换。 所以目前我有“容器对象”,我可以在其中嵌入另一个 viewControl
在我的项目中我遇到了这样的情况。 function fonsubmit() { alert('Out side PHP'); //Here the php code starts
我正在尝试添加一个JFileChooser,它选择父目录并允许用户输入文件名称。我知道 showSaveDialog 和 showOpenDialog 方法,但我不想创建新窗口。 这是我到目前为止所拥
我注意到我的网站创建了这样的链接:www.domain.com/post-name/embed/ 恐怕这可能会影响 SEO。是否可以禁用此功能? 最佳答案 显然这是默认的 WordPress 行为。此
我试图从 C 代码调用 python 函数,我遵循了 here 中的示例 我也有正确的包含文件目录、库目录和链接 python32.lib(我使用 python 32)但是错误是 python/C A
我正在使用基于云的 EDR 平台来监控客户端受损网络上发生的进程。我最近经常看到的是使用选项“-Embedding”调用的 msiexec.exe C:\Windows\System32\MsiExe
我有一个列表,其中包含数百万个需要嵌入的句子。我正在使用 Flair以此目的。这个问题似乎应该是并行的。但是,当我尝试优化时,我的性能要么没有提高,要么只是停滞不前。 我将我的句子定义为一个简单的字符
我想在我的应用程序中添加嵌入的 YouTube 视频:我该怎么做?我有这个 import 'package:youtube_player/youtube_player.dart'; import 'p
我有 json 看起来像: myjson = {"queries":{"F.SP": 27}} 所以与 queryResults = JObject.Parse(jsonString) 我可以 fir
我在 html 文档中嵌入 highcharts 饼图时遇到问题。具体来说,我无法在不更改图表大小的情况下调整图表容器的大小。有谁知道您是否可以在不缩小图表的情况下减少默认填充?或者,您可以在不增加容
我不太确定这在 MediaWiki 中是否可行。 我有几个类别,每个类别包含几页。如果您打开一个类别页面,您将看到该类别的内容,通常由以下三个部分组成: 用户定义的文本(可以使用编辑链接进行编辑)。
我是一名优秀的程序员,十分优秀!