我对以下情况感到困惑。假设我有一个带有行的表。当用户单击表中的按钮时,我希望用户表单使用 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
}
看来我的指令和我的控制逻辑太脱节了。例如,如果出现保存错误怎么办?由于 slideUp 事件已完成,该表单已被隐藏。在这种情况下,我很可能希望阻止 slideUp 操作。
我只使用了 AngularJS 大约一个星期,所以我确定我缺少一些东西。