こんにちは私は、ページ上のスナップショットイメージのリストを返すときに返されたスナップショットの日付をフィルターするdatepicker(マテリアルキットUI)を提供することを検討しています。しかし、私は、インジェクタのエラーを取得: angular.js:13920エラー:[$インジェクター:UNPR]不明プロバイダ:?dayFilterFilterProvider < - dayFilterFilter http://errors.angularjs.org/1.5.8/ $インジェクター/ UNPR P0 = dayFilterFilterProvider%20%3C-NaNayFilterFilterスナップショットを返すAngularJS datepicker
がここにありますディレクティブ:
<div class="dropdown">
<h3 class="dropdown-toggle" id="day-datetimepicker" role="button" data-toggle="dropdown" data-target="#"> {{ filtered.date ? filtered.date.label : 'Day' }} <span class="caret"></span></h3>
<ul class="dropdown-menu" role="menu" aria-labelledby="day-datetimepicker">
<datetimepicker data-ng-model="dateFilter" data-datetimepicker-config="{
dropdownSelector: '#day-datetimepicker',
minView: 'day',
startView: 'day'
}" data-on-set-time="dayFilter(newDate, 'day')"></datetimepicker>
</ul>
</div>
<a ng-repeat="s in chui.snapshot | dayFilter:'day' | orderBy:'-date'"
ng-click="select('snapshot', s);
modal('snapshot-keyholder', true);"
class="snapshot-thumbnail col-xs-6 col-sm-4 col-md-3 col-lg-2"
>
がご不明な点がありましたら、私に教えてください:
(function() {
"use strict";
app.controller("MainController", [
"$rootScope",
"$scope",
function ($rootScope, $scope) {
$scope.dayFilter = null;
$scope.dayFilter = function(items, date) {
return function(items, date) {
$rootScope.dateFilter = date;
var filtered = [];
var begin, end
begin = date.setHours(0, 0, 0);
end = date.setHours(23, 59, 59);
angular.forEach(items, function(item) {
if (item > begin && item < end) {
filtered.push(item)
}
})
console.log("Filtered day", date)
return filtered
}
};
$scope.dayFilter(new Date(), 'date');
そして、ここではhtmlです。
app.filter("dayFilter",[
function() {
return function dayFilter(items,date) {
var d = new Date();
var filteredItems = [];
var begin, end
begin = d.setHours(0, 0, 0);
end = d.setHours(23, 59, 59);
angular.forEach(items, function(item) {
if (item > begin && item < end) {
filtered.push(item);
}
})
console.log("Filtered day", d);
return filteredItems
}
$filter("dayFilter");
// dayFilter(new Date(),'date');
}]);
I no longer get an error, but the snapshots do not appear in the output, even though I get the following in the console:
iltered day Thu Nov 10 2016 23:59:59 GMT-0500 (COT)
main.js?v=2016-11-08-3:89 Filtered day Thu Nov 10 2016 23:59:59 GMT-0500 (COT)
main.js?v=2016-11-08-3:89 Filtered day Thu Nov 10 2016 23:59:59 GMT-0500 (COT)
main.js?v=2016-11-08-3:89 Filtered day Thu Nov 10 2016 23:59:59 GMT-0500 (COT)
main.js?v=2016-11-08-3:89 Filtered day Thu Nov 10 2016 23:59:59 GMT-0500 (COT)
main.js?v=2016-11-08-3:89 Filtered day Thu Nov 10 2016 23:59:59 GMT-0500 (COT)
main.js?v=2016-11-08-3:89 Filtered day Thu Nov 10 2016 23:59:59 GMT-0500 (COT)
main.js?v=2016-11-08-3:89 Filtered day Thu Nov 10 2016 23:59:59 GMT-0500 (COT)
main.js?v=2016-11-08-3:89 Filtered day Thu Nov 10 2016 23:59:59 GMT-0500 (COT)
ああを参照モジュールにフィルタを追加するには、
module.filter
方法を使用ポストでは、私はジャバスクリプトの中括弧とHTMLの最初のdivを閉じなかったことを認識しますが、スクリプト内では閉じています(コピーしたときに、スクリプトの他のディレクティブと部分関連するこの部分に、私はそれらの後の部分を閉じたので。 –'$ scope'はフィルタ関数に注入できません。 '$ scope 'は、' ng-controller'指令またはカスタム指令によってインスタンス化されるコントローラにのみ注入可能です。 – georgeawg
これは助けてさらに編集を加えました...私が与えた情報(質問の終わりの編集を参照してください)から、私が望む出力が得られない理由を知ることができますか? –