2015-11-19 3 views
0

У меня есть три контроллера, один родительский и два вложенных контроллера, которые являются братьями и сестрами в DOM. Все они содержат свойство, называемое «настройка». Два вложенных контроллера используют директиву, которая создает/связывает элемент DOM с свойством «customization». Моя проблема заключается в том, что изменение значения связанного свойства DOM в одном вложенном контроллере меняет значение в его вложенном контроллере.angularjs ограничение директивы scope

Я предполагаю, что это связано с областью действия директивы. Я хочу ограничить область действия директивы отдельным контроллером, чтобы не влиять на родительский контроллер или других братьев и сестер.

Любые советы, пожалуйста?

ответ

0

Вы можете указать контроллер в директиве.

app.directive('directive', function() { 
    return { 
    controller: 'CtrlName' 
    }; 
}); 

Или вы можете создать свою собственную область действия для этой директивы.

app.directive('directive', function() { 
    return { 
    scope: {}, 
    controller: ['$scope', function($scope) { 
     $scope.customisation = ... 
    }] 
    }; 
}) 
+0

привет, спасибо за отзыв. Что делать, если я дважды использую одну и ту же директиву? Внутри каждого вложенного контроллера. Является ли это возможным? –

Смежные вопросы