当我尝试向我的Serenity应用程序添加一组过滤器(https://github.com/jfox015/Serenity)时,在尝试将过滤器注入我的应用程序时出现“未捕获的对象”错误。当我从应用程序中删除过滤器代码时,它工作正常。无法弄清楚过滤器有什么问题,因此它们不会被识别为有效资源。我将它们作为全局模块的一部分,然后是一个单独的模块,它仍然失败。
以下是相关代码:
过滤存储在 app / src / admin / AdminFilters.js 中的代码:
'use strict';
angular.module('AdminFilters', ['USER_ROLES'])
.filter('userRoleFilter', ['USER_ROLES',
function(USER_ROLES) {
return function(input) {
return USER_ROLES[input];
};
}
])
.filter('dateJoinedFilter',
function() {
return function(input) {
var date = new Date(input);
return (date.getMonth() + 1) + "/" + date.getDate() + "/" + date.getFullYear();
};
}
)
;
app / src / app.js 中的Angular App声明:
var angApp = angular.module("serenityApp", ['ngRoute', 'ngResource', 'angular-md5', 'AdminFilters'])
app / src / admin / adminUsersList.html 中我的管理代码(Abridged)中的用法:
<tbody>
<tr data-ng-if="users" data-ng-repeat="user in users">
<td>{{ user.name }}</td>
<td>{{ user.role | userRoleFilter }}</td>
<td>{{ user.dateJoined | dateJoinedFilter }}</td>
<td>{{ user.group }}</td>
</tr>
<tr data-ng-if="!users">
<td colspan="4">No users were found.</td>
</tr>
</tbody>
相关的JS文件也包含在 index.html 文件中:
<script src="app/src/admin/AdminFilters.js" type="text/javascript"></script>
<script src="app/src/admin/AdminServices.js" type="text/javascript"></script>
<script src="app/src/admin/AdminController.js" type="text/javascript"></script>
答案 0 :(得分:1)
AdminFilters中的USER_ROLES,模块还是常量?
如果它是属于另一个模块的常量,那么我认为它不能在AdminFilters模块中注入。