Предположим, что я делаю это:
sAngular.app.directive('dostuff', ['$compile', function($compile){
return {
restrict : 'C',
scope: {
someVar : '='
},
link : function(scope, element, attrs){
element.click(function(){
//do stuff
scope.someVar = 'somethingelse';
var dropdownOutput = template();
var compiledOutput = $compile(dropdownOutput)(scope);
scope.$apply();
});
}
}
}]);
как я могу сделать область действия этой директивы наследовать переменную из родительской области и все же иметь ее как область выделения?
например, из angular docs:
= or = attr - устанавливает двунаправленную привязку между локальным свойством scope и свойством родительской области имени, определяемым через значение атрибута attr. Если имя attr не указано, атрибут Предполагается, что имя совпадает с именем локального. Определенное и видимое определение области: { localModel: '= myAttr'}, то свойство scope widget localModel будет отражают значение parentModel в родительской области. Любые изменения в parentModel будет отображаться в localModel и любые изменения в localModel будет отображаться в parentModel.
однако в этом случае, поскольку "любые изменения в localModel будут отображаться в parentModel", если я изменяю переменную в области действия этой директивы, а затем делаю scope.apply(), в этом случае она будет отражать в родительской области соответственно и родительский шаблон будет обновлен с изменениями
Я также попытался сделать "scope: true" в качестве параметра, но изменил область действия, за которой следует область. $apply(); также будет распространяться в исходный объем...
Есть ли способ сделать это так, чтобы я мог скопировать область из родительской области и все еще иметь изменения в переменных в этой области, которые не распространяются на родительскую область?