次のシナリオで混乱しています。行のあるテーブルがあるとしましょう。ユーザーがテーブルのボタンをクリックすると、ユーザーフォームが jQuery でスライドダウンし、選択された行の値でフォームが表示されます。これが私が現在行っていることであり、あまり意味がありません。
意見
<tr ng-click="setItemToEdit(item)" slide-down-form>
...
<form>
<input type="test" ng-model={{itemToEdit.Property1}} >
<button ng-click=saveEditedItem(item)" slide-up-form>
<form>
コントロール
$scope.itemToEdit = {};
$scope.setItemToEdit = function(item) {
$scope.itemToEdit = item;
});
$scope.saveEditedItem = function(item) {
myService.add(item);
$scope.itemToEdit = {};
}
ディレクティブ - スライドアップ / スライドダウン
var linker = function(scope, element, attrs) {
$(form).slideUp(); //or slide down
}
my ディレクティブと制御ロジックが切り離されすぎているようです。たとえば、保存エラーが発生した場合はどうなりますか? slideUp イベントが完了しているため、フォームは既に非表示になっています。その場合、slideUp操作を防ぎたいと思うでしょう。
私は AngularJS を約 1 週間しか使用していないので、不足しているものがあると確信しています。