factory
의 객체 목록을 얻고 controller
에 전달하고 거기에서 directive
으로 렌더링한다고 가정 해 봅시다. 지금까지 가장 좋은 방법은 무엇입니까? 지시어를 너무 많은 논리로 잘못 사용하고 있습니까?
.directive('Foo', function($modal) {
return {
restrict: 'EA',
require: 'ngModel',
transclude: true,
templateUrl: 'admin/foo.html',
scope: {
model: '=ngModel',
save: '&'
},
controller: function($scope) {
$scope.$watch('model', function(newVal, oldVal) {
init()
});
function init(){
// do some loops
};
$scope.doThis(){
// click event
}
$scope.checkThat(){
// some array methods
}
$scope.proxySave(){
// call passed in fn();
$scope.save({})
}
},
link: function(scope, element, attr, ngModel) {
// not really doing much here
}
그리고 지시어 HTML에서
이doThis()
같이 정의 일부 NG 클릭 기능이 될 것 : 내 지시어처럼 보이는 경우에도 각 개체를 가정
는
하는 save()
기능이 있습니다.
분리 된 관심사 관점에서 볼 때 주 컨트롤러에서 물건을 유지할 수 있다고 생각하지만, HTML의 템플릿과 로직 전체에 연결하는 것 외에 내 지시문 코드 내에서 DOM 조작을 많이 수행하지는 않습니다. 지시기 컨트롤러. 일부 지시선 컨트롤러는 약 100 줄의 로직입니다.
내가 표시/숨기기를 남용하고 있기 때문에 그게 맞습니까? 대신 링크 기능을 사용해야합니까?
내 서비스에 더 많은 논리를 퍼뜨릴 수는 있지만, "모델에 논리를 추가하십시오"라는 말은 내 객체가 작업을 처리하는 방법을 제공한다는 의미입니까? 일명 OOP? 그게 제가 생각한 것입니다. – iksose