0
我剛回到Angular,我很茫然。我正在利用我在之前的項目中使用過的datagrid指令,我試圖做的就是讓它顯示簡單的數據。
下面是一個使用我的電話模塊是:
define([
'angular',
'components/home/home-controller',
'../../../js/px-datagrid'
], function (angular, homeController, pxDatagridDirective) {
'use strict';
var homeModule = angular.module('app.home', ['ui.grid']);
homeModule.controller('home', ['$scope','$timeout','$log','$http','$filter',homeController]);
homeModule.directive('pxDatagrid', [ '$log','$filter',pxDatagridDirective ]);
});
這裏是PX-datagrid.js的關鍵部分:
define(['angular', 'text!./px-datagrid.tmpl', 'angular-ui-bootstrap',
'angular-sanitize'],
function(angular, tmpl, angularBootstrap) {
return function($log, $filter){
var PxDatagrid = {
...
applyFilters: function($scope, $log, $filter){
if($scope.tableData && ($scope.tableData.$resolved || $scope.tableData.length > 0)){
var filtered = $filter('filter')($scope.tableData, $scope.searchText);
filtered = $filter('orderBy')(filtered, $scope.sortBy, $scope.sortOrder === 'desc');
//removes dependency on startFrom filter
filtered = filtered.slice(($scope.currentPage - 1) * $scope.itemsPerPage);
$scope.filtered = $filter('limitTo')(filtered, $scope.itemsPerPage);
} else {
$scope.filtered = null;
}
}
...
}
}
}
不管我做什麼,我得到以下錯誤在applyFilters
:
TypeError: $filter is not a function
這似乎有相同的依賴注射,相同的結構,與之前一樣(我們可以在其中找到它的所有功能)。我可以找到的所有信息只是說注入它,它的工作原理...一定有一些簡單的我錯過了。
感謝您的答覆! 當我嘗試此操作時,出現「$ filter.js:1」的「Uncaught SyntaxError:Unexpected token <」。看起來它正在尋找該文件並且它不存在。 有沒有其他想法? – brettvd
從定義塊中刪除'$ filter'並僅添加'function(angular,tmpl,angularBootstrapm,sanitize,$ filter)' –
這樣做我仍然得到「$ filter不是函數」的錯誤... 我做了請注意,我在控制檯中也看到如下錯誤: 「錯誤:[$ injector:unpr] http://errors.angularjs.org/1.5.8/$injector/unpr?p0=%24modalProvider%20 %3C-%20%24modal%20%3C-%20PlmiCardBanner%20%3C-%20PlmiCardListBanner「 我讀了一下,但我似乎無法找出其他可能導致此問題的東西。我猜它不能解決'$過濾',但我不知道爲什麼... – brettvd