我使用的是angular2,我正在从一个服务绑定数据,问题是当我加载数据时,我应该用id过滤它,这就是我应该做的:
<md-radio-button
*ngFor="#item of items_list"
*ngIf="item.id=1"
value="{{item.value}}" class="{{item.class}}" checked="{{item.checked}}"> {{item.label}}
</md-radio-button>
这是数据:
[
{ "id": 1, "value": "Fenêtre" ,"class":"md-primary" ,"label":"Fenêtre" ,"checked":"true"},
{ "id": 2, "value": "Porte Fenêtre" ,"class":"" ,"label":"Porte Fenêtre" }
]
顺便说一下,我只想接受id=1的数据,但我看到了这个错误:
EXCEPTION: Template parse errors:
Parser Error: Bindings cannot contain assignments at column 14 in [ngIf item.id=1] in RadioFormesType1Component@10:16 ("
<md-radio-button
*ngFor="#item of items_list"
[ERROR ->]*ngIf="item.id=1"
value="{{item.value}}" class="{{item.class}}" checked="{{item.check"): RadioFormesType1Component@10:16
那么有什么建议将ngif和ngfor一起使用吗?
*ngif
和*ngFor
在同一个标签上不支持。您需要使用带有显式的长形式
使现代化
而不是<代码>
<ng-container *ngFor="#item of items_list">
<md-radio-button
*ngIf="item.id=1"
value="{{item.value}}" class="{{item.class}}" checked="{{item.checked}}"> {{item.label}}
</md-radio-button>
</ng-container>
另一种解决方案是创建自定义过滤管道:
import {Pipe} from 'angular2/core';
@Pipe({name: 'filter'})
export class FilterPipe {
transform(value, filters) {
var filter = function(obj, filters) {
return Object.keys(filters).every(prop => obj[prop] === filters[prop])
}
return value.filter(obj => filter(obj, filters[0]));
}
}
像这样用在组件中:
<md-radio-button
*ngFor="#item of items_list | filter:{id: 1}"
value="{{item.value}}" class="{{item.class}}" checked="{{item.checked}}"> {{item.label}}
</md-radio-button>
需要在组件上注册自定义管道:
@Component({
// ...
pipes: [FilterPipe]
})
演示:http://plnkr.co/edit/LK5DsaeYnqMdScQw2HGv?p=preview
您可以使用以下内容:
*ngIf="item.id===1"
而不是
*ngIf="item.id=1"
您尝试将某些内容分配到id
属性(运算符=
)中,而不是测试其值(运算符==
或==
)。
此外,不支持在同一个元素上同时使用ngFor和ngIf。你可以试着这样做:
<div *ngFor="#item of items_list">
<md-radio-button
*ngIf="item.id===1"
value="{{item.value}}" class="{{item.class}}"
checked="{{item.checked}}">
{{item.label}}
</md-radio-button>
</div>
或
<template ngFor #item [ngForOf]="items_list">
<md-radio-button
*ngIf="item.id===1"
value="{{item.value}}" class="{{item.class}}"
checked="{{item.checked}}">
{{item.label}}
</md-radio-button>
</template>
如果我尝试选择存在于ngIF指令中的DOM元素,则该元素为空。如果我删除ngIF,那么我可以选择它。 组件模板中的代码,未找到div: 去掉*ngIf和外部报告div的内容。 ngAfterViewInit是否在数据返回之前运行以确定ngIF发生了什么?我希望ngIF首先运行,而ngAfterViewInit是最后运行的东西。 注意:groupedPatchGroups 值在 ngOnInit 中
问题内容: 我想在一行中使用ngIf和ngFor。我知道这是不可能的,但是还有其他方法可以做到吗? 这是我的代码: 问题答案: 一次只能在一个元素上使用一个结构指令。 作为解决方法,您可以使用未标记到DOM的方法
我正在使用Intellij Idea在MacOS上用Java编写代码。我安装了在官方网站上下载的JDK Java 11。Java工作很好。但是,现在我想使用JavaFX库。 因此,我使用导入JavaFX 但我得到错误:。 所以我搜索了一小段,发现我必须将项目创建为“JavaFX应用程序”,所以我这样做了,但在文件中我得到的消息是: 未配置JavaFX运行时。或者使用内置JavaFX的JDK,或者向
在本例中,我使用Angular并希望使用(从版本4开始可用): 如何使用实现相同的行为?
在下面的代码中,我试图在< code >选项卡下显示所有< code >项目(对象),它们应该基于它们的类别。 类别必须相等。 编辑:如果还不清楚,请看这里。 我正在尝试遍历选项卡并将每个选项卡的名称添加到选项卡的“模板”中。 然后,我尝试遍历项目,如果项目的类别与选项卡的类别匹配,那么它将显示在选项卡下。 出于某种原因,它似乎不起作用。我做错什么了吗?< br >请原谅我和我的逻辑,过去两天一直
切换状态方法 但是,如果我删除*ngIf 将会工作。 理论上,ngIF检查它是否为真。该元素将在DOM上可用。根据我的理解,元素也应该具有非活动状态,因为它没有被触发。单击触发器后,元素将可用,并将具有活动状态。 但是为什么它没有任何动画呢? 有什么工作可以让我使用ngIf和动画吗?