$rootScope で AJAX 呼び出しを介してカレンダー データを取得するアプリケーションを構築しています。このオブジェクトをさまざまなコントローラーで使用しますが、さまざまなオブジェクトがネストされているため、適切に解析できる必要があります。解析するロジックはどこに保存すればよいですか? $rootScope 関数としてルート コントローラーに入れたことはありますが、これはファクトリの使用例のように感じます。ただし、テンプレートからファクトリ メソッドにアクセスできるようには見えません (また、アクセスするのが良いとは思いません)。
現在、次の工場があります。
angular.module('services',[]).
factory('dataManipulation', function(){
return{
getPerson: function(peopleObj, userID){
//Since each user has a unique ID, this returns an array with one element,
// so to simplify the view code, there's a [0] at the end
var person= peopleObj.filter(function(element, index, array) {
if (array[index].cwid == userID) {
return true;
}
})[0];
return person;
}
};
});
そして、私のコントローラーで以下:
angular.module('app.controllers',[]).
controller('rootCtrl', ['$rootScope', '$http', 'dataManipulation',
function($rootScope, $http, dataManipulation) {
$rootScope.getPerson = function(peopleObj, userID){
return dataManipulation.getPerson(peopleObj, userID);
}
}
]);
それは機能しますが、ベストプラクティスに従っているかどうかはわかりません.
では、モデルを解析するためのこれらの関数は rootScope にあるべきでしょうか、それとも別の場所にあるべきでしょうか?