Javascript 使用过滤器进行更新?
我想使用Javascript 使用过滤器进行更新?,javascript,angularjs,Javascript,Angularjs,我想使用$filter或其他智能方式更新我的模型,而不必对每个执行多个。 因此,我的模型基本上与以下类似: $scope.projects = [ { tasks: [ { name: 'task name', visible: true, starred: true } ], createdAt: 'something' }, { tasks: [ {
$filter
或其他智能方式更新我的模型,而不必对每个执行多个。
因此,我的模型基本上与以下类似:
$scope.projects = [
{
tasks: [
{
name: 'task name',
visible: true,
starred: true
}
],
createdAt: 'something'
},
{
tasks: [
{
name: 'second task name',
visible: true,
starred: false
}
],
createdAt: 'something'
}
]
我想做的是使用$filter
或其他类似下划线
等方式来更新变量的内容。例如,当我单击一个按钮时,我只想将visible=true
设置为带星号的任务
有人对如何实现这一目标有什么建议吗?有没有可能,或者我需要做几个循环
比如:
$filter('filter')($scope.projects,{{{starred=true})。tasks.visible=true
更新
在@jbrown的帮助下,我实现了我想要的。
为了防止有人需要类似的方法,最终的解决方案如下所示:
_.forEach($scope.projectsModel.projects, function(proj){
_.forEach(_.filter(proj.tasks, {starred: true}), function(task){
task.visible = true;
});
});
使用下划线,您可以使用过滤器和查找的组合来获得您要查找的结果
$scope.filteredProjects = _.filter($scope.projects, function(proj) {
return _.find(proj.tasks, {
visible: true, starred: true });
});
嗨,杰布朗!你的答案95%正是我需要的!:)我现在需要的是基于此筛选器设置值。。我需要在这个过滤器上,我将可见设置为真,其中星号为真。。下划线中是否有某种方法可以设置
而不是查找?啊!在你的帮助下,我成功了。。我认为你的答案是正确的,可以启发你如何去做。。我会发布我的解决方案,以防万一有人也需要它。。