私はAngularJSの新生児です。Angularを使って新しいプロジェクトを作成すると、すでに他の開発者によって作成されたコードがあります。私がコードに深く触れ始めると、View-Controller-Factoryの「接続」実装の2つの方法が分かりました。 最初のものは角チュートリアルのようであった:工場とコントローラ自体へのポインタは、工場の変数を有するようにした第二のすべてのコントローラ機能でAngularJS:コントローラと工場を正しく使用
app.factory('dashboardFactory', function(){
var widgets = [];
return {
getWidgets: function() {
return widgets;
},
}
:
コントローラー:
app.controller('dashboardController', function (dashboardFactory){
/*Controller as implementation*/
this.widgets = dashboardFactory.getWidgets();
})
ファクトリーポインタ:
コントローラ:
app.controller('mapController', function (mapFactory){
this.mapFactory= mapFactory;
this.getRowStatus = mapFactory.getRowStatus;
this.getRowTooltip = mapFactory.getRawTooltip;
})
ファクトリー:第2の実施で
app.factory('mapFactory', function(){
getRowStatus: function (grid, row) {
var result = '';
var currentStatus = row.entity.ONLINE_STATUS;
switch (currentStatus) {
case 1:
result = 'carInMotionLight';
break;
case 2:
result = 'carInIdleLight';
break;
case 4:
result = 'carAlertLight';
break;
}
return result;
},
getRawTooltip: function (grid, row) {
var result = 'Engine off';
var currentStatus = row.entity.ONLINE_STATUS;
switch (currentStatus) {
case 1:
result = 'In motion';
break;
case 2:
result = 'In idle';
break;
case 4:
result = 'Alert';
break;
}
return result;
},
});
コントローラがきれいに見えるとファクトリ関数の内部では、コントローラの範囲にあり、あなたは別のファクトリ関数を呼び出す必要がある場合は、定義された工場出荷時の変数を使用する必要があります。
第1または第2の実装を使用しても、両方とも同じ結果が得られています。 あなたはどう思いますか?どちらを使うのが良いですか?
質問に直接答えはないかもしれませんが、私はAngularJSで始まる人々の間でJohn Papa AngularJSスタイルガイドを共有したいと思います。あなたが時間を見つけたら、それは最も良いaprroachesを議論する素敵な明確な内容を持っています。 https://github.com/johnpapa/angular-styleguide –