0
私は角度サービス(ngResourceが持っているデータ)の配列を変更(フィルタリング)してから、変更したデータをコントローラに渡したいのですが、非同期動作が原因で固まっています。ngResourceによってフェッチされたデータを変更してそれを返す方法はありますか?
(function() {
'use strict';
angular.module('app').factory('Report', ['Employee', function(Employee) {
var getReports = function(employeeId) {
return Employee.query({}, function(employees) {
return employees.filter(function(element) {
return employeeId === element.managerId;
});
});
};
return {
query: function(employee) {
return getReports(parseInt(employee.employeeId));
}
};
}]);
}());
そして、私はこのようなコントローラでそれを呼び出す:
は、ここでは、コードです
$scope.employees = Report.query({employeeId: $routeParams.employeeId});
私は上記のコードには2つの問題があります。
- そうでないと仕事:) getReports()はフィルタリングせずに、全従業員の配列を返します
- それはエレガントまたは保守的なデザインのようには思われません。その点で何が改善できるでしょうか?
おかげで、それは私にはTypeError与える:。getReports(...)、その後ではありません関数 – Ketus
あなたは正しいです私はあなたが約束に頼っていないことに気付きました。 – VRPF
私は約束の周りに頭を浮かべているような気がします。お勧めの学習リソースを教えてもらえれば、それは大いに役立ちます。 – Ketus