TypeError:无法读取属性' reduce'在angularjs中未定义的

时间:2018-01-19 21:29:24

标签: javascript angularjs json

所以我的问题可能会有些奇怪,但我遇到的问题其实很奇怪。

因此,为了创建自定义搜索过滤器,我使用javascript的{​​{1}}和.map功能,在这种情况下我可以使用这些范围示例。看看下面的代码:

.reduce

所以在$http.get('config/get/getOrders.php', {cache: true}).then(function(response){ $scope.orders = response.data.orders.order; $scope.orders.map( function addPlace(item) { item.firstname = $scope.customers.reduce(function(a,customers){ return item.id_customer === customers.id ? customers.firstname : a; }, ''); return item; }); }); 我请求带有数据的JSON文件。这些数据包含一些信息订单。所有这些订单的值都为$http.get()。此值连接到下订单的客户信息。

所以我希望用id_customer来扩大我的搜索功能。有关如何以及为什么看看这个question我昨天问过的更多信息。

它有效。过滤器还可以搜索customer name。但后来我想在另一个控制器中使用相同类型的功能。功能目标保持不变。连接多个customer_firstname类型的数据。但很奇怪,因为它的回报是$scope。是的,我把它放在同一个app.js中,但只放在另一个控制器中。我已经检查了TypeError: Cannot read property 'reduce' of undefined$scope.products以及$scope.stock_availables的所有数据是否存在且确实存在,我已经检查了提供商等等,所有这些都适合我我不知道为什么会发生这种情况。这种情况下的功能是:

$scope.productCombiantions

简短摘要:一个功能在一个控制器中有效但相同的功能在另一个控制器中不起作用。

如果您有任何疑问,请在评论中询问。

一如既往,提前致谢!

1 个答案:

答案 0 :(得分:0)

所以我在加载所有数据的序列中犯了一个错误。由于在产品序列之后加载了$scope.productCombinations这一事实。所以给大家小费。始终检查代码的编写顺序。