这是针对 AngularJS 应用程序的。我有一个依赖于服务的自定义指令。
我真正好奇的是处理影响模型和 DOM 的用户操作的“角度方式”。一些示例代码:
HTML:
<form foo-places>
<!--other stuff -->
<span ng-repeat="place in places">
<button ng-click="removePlace(place)">remove {{place}}</button>
</span>
</form>
JS:
angular.module('foo.directives', []).directive('fooPlaces',
function(placesService) {
return {
controller : function($scope) {
$scope.places = placesService.places;
$scope.removePlace = function(name) {
placesService.removePlace(name);
};
$scope.$on('placesChanged', function() {
$scope.places = placesService.places;
});
},
link : function($scope, element, attrs) {
//code to do stuff when user removes a place
}
}
})
当用户删除一个地方(通过点击一个按钮)时,我还需要做一些事情来弄乱 DOM,例如,将窗口滚动到顶部等。在控制器中有一个处理的函数感觉很奇怪模型,然后是指令中的另一个函数,它执行 DOM 的工作……但两者都基于相同的用户操作。
我是在想这件事还是真的错过了什么?我应该如何处理同时处理模型和 DOM 的单个用户操作?