angularjs filterfilter order by in controller / factory
angularjs filterfilter order by in controller / factory
我有以下工厂:
app.factory("ModuleFactory", function (api, $http, $q,filterFilter) {
var moduleList = [];
var categoryList = [];
var moduleTypeList = [];
var academyModuleTypeList = [];
var mostUsed = [];
var lastUpdated = null;
return {
/**
* @description This function gets the entire module list for the given users organization.
* @author Marc Rasmussen
* @returns {d.promise}
*/
getList: function () {
var d = $q.defer();
if (moduleList.length == 0) {
$http.get(api.getUrl('module', null))
.success(function (response) {
moduleList = response;
lastUpdated = new Date();
d.resolve(response);
});
}
else {
d.resolve(moduleList);
}
return d.promise;
},
getMostUsed: function () {
var d = $q.defer();
if(moduleList.length <= 0){
this.getList().then(function () {
})
}
}
}
});
现在列表moduleList
包含objects
的列表在这些对象中有一个字段num_used
正如您所看到的,我创建了一个名为getMostUsed
的函数,该函数需要返回模块列表,但按字段num_used
desc
排序。
然而,我不太确定如何使用filterFilter
为此,我知道我可以使用array.sort()
,但我希望使用angular
功能,如果可能的话?
假设filterFilter是你在应用某处定义的过滤器,你可以像这样在控制器/工厂中调用它。
导入angular的$filter服务
app.factory("ModuleFactory", function(api, $http, $q, $filter) {
当你需要它的时候,你可以请求你的过滤器,并像这样调用它:
$filter("filterFilter")(moduleList);
关于$filter服务的更多信息请参见angular文档页。
如果你想做的是按照给定的属性对moduleList排序,你应该使用orderBy过滤器。
this.getList().then(function(moduleList) {
$filter('orderBy')(moduleList, '-num_used'); // order descending by the num_used property
})
关于orderBy过滤器的更多信息可以在这里找到。
相关文章:
- 在MVC 4中,对Controller的Ajax调用为空
- 调用laravel{{action(Controller@method}}通过传递vue.js数组中的变量
- 基于用户加载不同的controller/js文件'访问级别
- Reveal Modal中带有Foundation-Controller的AngularJS不起作用
- 如何为通过ng-view指令或ng-controller指令创建的每个新作用域设置侦听器
- RequireJS正在加载angular应用程序,但没有't创建app.controller
- 打印从Spring MVC Controller发送的字符串数组只显示“;toJSON”;在javascript中
- 如何在angular factory中定义ngModel
- 如何根据Angularjs中的某些条件在Controller中生成scoped变量
- 为什么我发布的数据在这个AJAX调用的Controller目标中为null
- Codeigniter controller, javascript console.log()
- 从javascript调用Rails Controller/action提交表单
- 当Json Length过长时,对ASP.NET MVC Controller的Ajax调用返回404
- navigator.serviceWorker.controller始终保持为空
- Jhon Papa Angular Style guide Factory-对象内部的函数未运行
- 如何:在JavaScript对象中声明的Angular Factory方法
- $provide.decorator$controller return throw undefined不是angula
- 如何将ng-model / $scope与Angular Factory和Controller一起使用
- angularjs filterfilter order by in controller / factory
- 是否有可能将所有AngularJS文件(例如Controller, Factory)加载到一个外部HTML中?