Javascript 带ng重复的角度1.5过滤器不按id轨迹工作
所以我尝试了很多不同的方法来完成这件事。跟踪了这么多StackOverflow,无法使其工作。我所要做的就是根据布尔属性的值过滤一些列表项。下面是我的对象数据的图片。我下面最接近的例子就是这个问题。仍然不起作用。它是否与对象文字有关,并且这种带有属性的过滤类型仅适用于数组?我是javascript新手,所以不确定。另外使用角度材质、虚拟重复容器和其他基于材质的东西都不会影响结果,我可以显示整个数据,只是被这个特定属性过滤后不起作用Javascript 带ng重复的角度1.5过滤器不按id轨迹工作,javascript,angularjs,angularjs-ng-repeat,angular-material,javascript-objects,Javascript,Angularjs,Angularjs Ng Repeat,Angular Material,Javascript Objects,所以我尝试了很多不同的方法来完成这件事。跟踪了这么多StackOverflow,无法使其工作。我所要做的就是根据布尔属性的值过滤一些列表项。下面是我的对象数据的图片。我下面最接近的例子就是这个问题。仍然不起作用。它是否与对象文字有关,并且这种带有属性的过滤类型仅适用于数组?我是javascript新手,所以不确定。另外使用角度材质、虚拟重复容器和其他基于材质的东西都不会影响结果,我可以显示整个数据,只是被这个特定属性过滤后不起作用 loadAssets=()=>{ var self=这个; se
loadAssets=()=>{
var self=这个;
self.infiniteasets={
加载数量:0,
toLoad_u0:,
项目:[],
pageNum:1,
虚拟索引:0,
getItemAtIndex:函数(索引){
这个.virtualIndex=索引;
如果(索引>此.numloated_u41;{
此.fetchMoreItems(索引);
返回null;
}
返回此.items[索引];
},
//必需的。
getLength:函数(){
如果(this.virtualIndex>this.numLoaded){
返回此.numloated\ux;
}否则{
返回此.numloated+5;
}
},
fetchMoreItems:函数(索引){
if(this.toLoad<索引){
自加载=真;
此.toLoad+等于20;
self.siAsset.getAssets(this.pageNum++,20)
.then(angular.bind)(此,函数(资产){
//this.objLength=assets.length;
如果(!assets.statusCode){
this.items=this.items.concat(资产);
this.toLoad=this.items.length;
this.numLoaded u=this.toloaded;
}
自加载=错误;
}))
}
}
};
console.log('++',self.infiniteasets)
{{asset.name}}
{{'LABELS.DISABLED'| translate}}
{{asset.status | |'UNKNOWN'}
正如您所说,带ng重复的角度1.5过滤器不按id跟踪工作“
我使用AngularJs 1.5
创建了示例,并使用了带有track by onng repeat
的过滤器
angular.module('controllerAsExample',[])
.控制器(“设置控制器1”,设置控制器1);
函数设置控制器1(){
此.infiniteasets=[
{disabled:false,name:'test0',id:234},
{disabled:true,name:'test1',id:123},
{disabled:false,name:'test2',id:345}
];
//console.log(this.infiniteasets);
}
ng使用angularjs 1.5.0通过田径场示例重复:
-
{{asset.name}
正如您所说,带ng重复的角度1.5过滤器不按id跟踪工作“
我使用AngularJs 1.5
创建了示例,并使用了带有track by onng repeat
的过滤器
angular.module('controllerAsExample',[])
.控制器(“设置控制器1”,设置控制器1);
函数设置控制器1(){
此.infiniteasets=[
{disabled:false,name:'test0',id:234},
{disabled:true,name:'test1',id:123},
{disabled:false,name:'test2',id:345}
];
//console.log(this.infiniteasets);
}
ng使用angularjs 1.5.0通过田径场示例重复:
-
{{asset.name}
你确定md virtual repeat
与过滤器一起工作吗?AngularJS Materials virtual repeat是ng repeat的自定义实现,因此你不能期望它与原始版本完全一样工作。以下是文档中的内容
虚拟重复是仅渲染的ng重复的有限替代品
足够的DOM节点来填充容器并作为用户回收它们
卷轴
迭代支持数组,但不支持对象
别名和(键、值)语法不受支持
我会将过滤移到您的控制器中,只要确保在集合更改时重新应用过滤器。您确定
md virtual repeat
与过滤器一起工作吗?AngularJS Materials virtual repeat是ng repeat的自定义实现,因此您不能期望它与原始版本完全一样工作。以下是从文档中删除
虚拟重复是仅渲染的ng重复的有限替代品
足够的DOM节点来填充容器并作为用户回收它们
卷轴
迭代支持数组,但不支持对象
别名和(键、值)语法不受支持
我会将筛选移到您的控制器中,只要确保在集合更改时重新应用筛选即可。您是否可以插入一个plunker而不是代码段?这将非常有助于解决问题按值跟踪\u to\u be\u trackedby对于列表中的每个项(如$index或id等)都应该是唯一的。