角度过滤器的范围下至1键类型,以准备发送
angular filter a scope down to 1 key type to prepare for send
所以我有一个包含大量键值对的作用域,这样我就可以使用它,并在发送它之前让它做一些事情。
我遇到的问题是,在我发送之前,我想将该范围更改为id的一小部分密钥数组
所以我有一个像这样有缺陷的范围:
$scope.myScope = {name: name 1, id: 1, order: 1}, {name: name 2, id: 2, order: 2}
我想把它变成
$scope.FilteredScope = {1,2};
只是身份证。我想知道你是否可以在发送之前在控制器内部过滤这个范围?我只在重复中使用过过滤器。因此,在控制器内部,它会过滤掉id,并将它们放在一个新的范围内,只发送id。这可能吗?
谢谢!
您可以只使用array.map(对于较旧的浏览器可能需要polyfill):
angular.module('MyModule', [])
.controller('MyController', function( $scope ) {
$scope.myScope = [
{name: 'name1', id: 1, order: 1},
{name: 'name2', id: 2, order: 2}
];
$scope.ids = $scope.myScope.map( function(obj){
return obj.id;
});
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app='MyModule' ng-controller='MyController'>
ids: {{ids | json}}
</div>
首先如果$scope.myScope是一个正确的Javascript对象(在这种情况下,它是一个映射对象数组),它的形式应该是:
$scope.myScope = [{name: "name 1", id: 1, order: 1}, {name: "name 2", id: 2, order: 2}]
其次,如果假设您希望您的$scope.filteredScope是$scope.myScope对象中所有id值的数组。
所以可以像一样轻松完成
$scope.filteredScope = []
for(entry of $scope.myScope) $scope.filteredScope.push(entry.id)
这将导致一个输出数组,如[1,2],然后您可以发送它。
请告诉我我的假设是否正确。如果没有,请用更多信息编辑您的问题,我很乐意帮助
相关文章:
- 为什么会出现错误;未捕获的类型错误:undefined不是函数;
- 如何在DOM元素上按类型构建此函数
- 同样,同样的错误'ahorcado.js:26未捕获类型错误:无法读取属性'beginPath'
- YUI3 IO实用程序是否可以根据给定的内容类型标头值自动序列化数据
- Webpack/Rect:遵循egghead.io教程,但出现错误:您可能需要一个合适的加载程序来处理此文件类型
- 如何从querySelectorAll中获取按钮类型
- 如何在输入字段中的按钮的帮助下打开日历,该字段的类型为“=”;日期”;
- 如何将具有文本类型值的var放入jQuery函数中
- 为什么我的d3.jsselectAll+过滤器没有过滤
- Angularjs-utils高亮过滤器在搜索时破坏应用程序
- javascript解释器如何理解变量的数据类型
- jQuery dataTables基于类型的列筛选不起作用?Img alt过滤器/排序
- jQuery/Datatables:在基本DataTable中包含许多不同的搜索过滤器类型和字段
- 角度:搜索器(过滤器)根据数据类型工作不同
- 用于多种类型的过滤器的 jQuery grep 方法
- 角度过滤器的范围下至1键类型,以准备发送
- 财产'过滤器'在类型'可观察<事件>'
- 选择输入框的过滤器类型
- 离子类型与离子过滤器-棒 - 不能参考$scope
- jQuery 过滤器,带有使用数据类型的下拉框