我想弄清楚为什么我的日期范围过滤器不工作,我得到的错误 - [$注入器:unpr]未知提供者:dateRangeProvider < - dateRange < - dashboardController。 我试图把'dateRange'放在我的依赖项和$ filter中,不知道我所做的是否正确。任何帮助绝对赞赏!谢谢!角度日期范围过滤器不工作
我的,我想两个日期之间的过滤抢了产品的ID HTML
<input style="width:200px; padding:10px; border-radius:4px;"type="text" placeholder="search name" ng-model='productFilter'>
<input type="date" ng-model="to_date">
<input type="date" ng-model="from_date">
<div ng-repeat="product in products | dateRange : from_date : to_date | filter: productFilter track by $index">
<p>Total Inputs: {{product.createdAt}}{{product._id}}</p>
</div>
这是我DashboardController
app.controller('dashboardController', ['$scope', '$filter', 'OpFactory', function($scope, $filter, OpFactory){
function getProducts(){
OpFactory.getProducts(function(data){
$scope.products = data;
console.log("data from getProducts function in dashboardcontroller", data);
})
}
getProducts();
$filter('dateRange', function() {
return function(product, fromDate, toDate) {
var filtered = [];
console.log(fromDate, toDate);
var from_date = Date.parse(fromDate);
var to_date = Date.parse(toDate);
angular.forEach(product, function(item) {
if(item.completed_date > from_date && product.completed_date < to_date) {
filtered.push(item);
}
});
return filtered;
};
});
}]);
嘿Canastro!非常感谢你对我的教育,我没有意识到我必须这样做,并且有必要追加到我的模块中。所以在我的app.js中,我实际上给了我的角度模块一个应用程序的变种。所以我基本上只是做了app.filter,它不会抛出错误。不过,我将滤镜功能更改为您的规格,并且仍未按日期进行过滤...尝试按照创建时的过滤条件进行过滤,即“createdAt”。 –
您是否将我作为'completed_date'离开的地方更改为'created_at'? – Canastro
是的,我确实将其更改为created_at,但它尚未进行过滤,但它会根据$ index跟踪的第一个输入值进行过滤。 因此,我在console.log()之前的第二个if语句和chrome控制台中显示它确实输入了forEach函数,但是随后我在第二个if语句中使用了console.log,并且它从不显示console.log中的内容。似乎它从来没有进入第二条语句 –