いくつかの角度スタイルガイドとベストプラクティスのリンクを検索しましたが、この問題に関するメモを見つけることができませんでした。私たちは、コントローラ上の機能を呼び出す要素と通常のウェブページを持っている場合(。私は$スコープを使用していない、注意してください)、WPFでの作業から私の本能がやることだった。Angularでは、「ドメインコマンド」機能(抽象度が低い)またはGUIアクション処理関数(より抽象化)にバインドする必要がありますか?
<button ng-click="myCtrl.save()">Save</button>
...
...<button ng-click="myCtrl.onSaveClicked()">Save</button>
:
function myController(thingSavingService){
var ctrl = this;
// ...
ctrl.model.thing = {};
// ...
ctrl.saveThing() = function() {
thingSavingService.save(ctrl.model.thing);
}
}
誰かが同じように、おそらく要素固有のハンドラ関数を持つことは良い習慣であることが示唆されました
function myController(thingSavingService){
var ctrl = this;
// ...
ctrl.model.thing = {};
// ...
ctrl.onSaveClicked = function() {
saveThing();
}
var saveThing = function() {
thingSavingService.save(ctrl.model.thing);
}
}
これらのことをコントローラの機能に直接バインドしているか、「アクションハンドラ」がドメインレベルの機能とは別になるように別のレイヤーを配置する方が良いですか?
つまり、「ドメインコマンド」機能(抽象度が低い)またはGUIアクション処理関数(より抽象化)にバインドする必要があります。
また、これらのニュアンスを探究する記事やベストプラクティスガイドはありますか?
"onSaveClicked"は単に '' saveThing''を呼び出す以外のことをやろうとしていますか?そうでなければ、これには意味がありません。それはとにかく役に立たない。これはjavaのようなコードのようなにおいがします。 – sielakos
は、UIフォーカスフレームワークであり、実際には、サービス内のドメイン機能(通常はAPI呼び出し)を使用して、それらを呼び出す要素に固有のコントローラ機能に向かって設計されています。つまり、この質問は主観的であり、実際にはすべての状況に当てはまる十分な答えを実際に受け取ることはできません。 – Claies
理論的には、onSaveClickedはクリックされた保存ボタンに固有のもので、別のコントロール(たとえば自動保存タイマー)からsaveThingを呼び出す別の関数があるとします。 –