angular.js为工厂注入功能
angular.js inject function into factory
我有一个函数
function propValueFilter (toFilterArr, filterFunction) {
return toFilterArr.filter(filterFunction);
};
和一个工厂
backpackrApp.factory('itemsFactory', function(propValueFilter) {
factory.getBackpackById = function(id) {
return backpacks.propValueFilter(function(element) {
return element.id == id;
});
};
return factory;
});
我在Web控制台的组件$injector中收到一个未知提供程序错误。
如何正确注入函数?我想创建一组Helper函数,我可以在许多控制器/工厂等中使用。
提前感谢
您应该将此函数封装在另一个服务/工厂(在下面的示例中命名为filterService)中,并将其注入项目工厂,例如:
backpackrApp.factory('itemsFactory', ['filterService', function(filterService) {
factory.getBackpackById = function(id) {
return backpacks.propValueFilter(function(element) {
return element.id == id;
});
};
return factory;
}]);
第一个函数返回中的间距问题?应为:
function propValueFilter (toFilterArr, filterFunction) {
return toFilterArr.filter(filterFunction);
};
我认为您想要创建可以从工厂注入的辅助函数(假设您知道使用Array.filter做什么):
backpackrApp.factory('myUtil', function() {
var obj = {
obj.propValueFilter = function(toFilterArr, filterFunction) {
return toFilterArr.filter(filterFunction);
};
};
return obj;
});
backpackrApp.factory('itemsFactory', function(myUtil) {
var itemsFactoryObj = {
backpacks = []; // set somewhere
obj.getBackpackById = function(backpacks, id) {
return myUtil.propValueFilter(function(element) {
return element.id == id;
});
};
};
return itemsFactoryObj;
});
backpackrApp.controller('TestCtrl', function(itemsFactory) {
$scope.backpack = itemsFactory.getBackpackById(1);
});
相关文章:
- 添加文字和评论功能更新Div
- JavaScript打印功能使日历停止工作
- 使用Objective-C的JavaScript注入方法
- 正在注入包含JS的HTML
- 迷你$provider注入茉莉花和角
- 每当您在选择器内移动鼠标时,悬停功能就会重复
- 如何防止网页加载后自动启动功能
- 除修剪外的其他功能
- 悬停功能触发器
- Angularjs工厂注入错误
- 使用angularjs向浏览器发送servlet响应(下载功能)
- 通过命令行/批处理文件打开页面时,将javascript代码注入Google Chrome
- 删除CKEditor工具栏按钮,但不删除功能
- 异步facebook功能
- 如何将chrome扩展功能移植到移动设备(特别是jquery和trello)
- 如何检查注入控制器中的功能
- angular.js为工厂注入功能
- 将功能注入其他Node.js模块
- JavaScript 注入以禁用警报功能
- 如何向现有对象方法注入额外的功能