我需要一个数据列表,该列表通过其定义的属性(监控)进行过滤,我不能只执行以下操作:
ng-if="project.monitored"
因为我需要计算未受监控的。
对于这个示例,我简化了从getProjects()返回的数据,通常是:
this.projects = {
"owned": [
{
"name": "project-1",
"monitored": true
},
{
"name": "project-2",
"monitored": true
}
],
"John Doe": [
{
"name": "project-3",
"monitored": true
},
{
"name": "project-4",
"monitored": false
}
]
};
我将首先遍历this.projects.owner,然后遍历模板中的其余部分。此处未监控的总数将等于1。
所以我想我不能用这种方法
例子:
样板
<div ng-init="getProjects()">
<div ng-if="vm.isMonitored(project.name)" ng-repeat="project in vm.projects">{{ project.name }}</div>
</div>
控制器:
getProjects(){
console.log('init');
this.projects = {
{
"name": "project-1",
"monitored": true
},
{
"name": "project-2",
"monitored": true
}
};
}
isMonitored(name) {
console.log('Name :'+name);
return true;
}
模板正确显示了2个结果:
项目1项目2
但console.log:
init
dashboard.controller.js?e45c:217 Name :project-1
dashboard.controller.js?e45c:217 Name :project-2
dashboard.controller.js?e45c:217 Name :project-1
dashboard.controller.js?e45c:217 Name :project-2
dashboard.controller.js?e45c:217 Name :project-1
dashboard.controller.js?e45c:217 Name :project-2
因此,我无法理解为什么在模板上显示的结果是正确的情况下,console.log中有如此多的副本。
因此,如果我在ng-if中计算任何东西,结果将是错误的。为什么啊?有什么解决办法吗?
在每个摘要循环中,AngularJS将重新评估注册的观察者(因此您的vm.is监控(project.name)
)。这就是为什么你的控制台会多次显示日志。
使用ng if
时,使用的值必须是布尔值或返回布尔值的方法。你不能用这种方法做生意,因为AngularJS的麦加主义。好的方面是,你的观点应该是:
<div ng-if="project.monitored" ng-repeat="project in vm.projects">{{ project.name }}</div>
我试图理解ng-if和作用域。正如我所知,ng-if创建了一个新的子作用域。以下是我的问题: 我的问题是,在这两种情况下(true或false)我都无法访问someValue2。我怎么能做到这一点?
问题内容: 如何在Javascript中使用ng-repeat之类 的 ? 例: 我想用ng-repeat重复4次,但是我该怎么做呢? 问题答案: Angular带有limitTo:limit过滤器,它支持限制前x个项目和后x个项目:
我是新来的ReactJS。在我的索引页上,loginState的初始状态 但是我的控制台在设置状态之后,两个modalStatus都打印为false。我做错什么了吗?请引导我。如果有任何帮助,我将不胜感激。
问题内容: 有没有一种方法可以定义次数,而不必总是遍历数组? 例如,在下面,我希望列表项显示5次,并假设等于5,并且增加数字,因此每个列表项都按1、2、3、4、5递增 所需结果: 问题答案: 较新版本的AngularJS(> = 1.3.0)允许您仅使用变量(无需功能)来执行此操作: 在首次提出问题时这是不可能的。感谢@Nikhil Nambiar从下面的回答中获得此更新 原创(5/29/2013
我有一个非常简单的代码。,当值正确时将显示输入。但是不起作用,我在pre中没有看到任何东西
我试图用ng repeat in Angular来重复一个多维数组的子数组。我的json对象是这样的: 我尝试了这样的东西: 然后在这个孩子的表中: