私がこれをするとします:
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();
});
}
}
}]);
このディレクティブのスコープに親スコープから変数を継承させながら、それを「分離」スコープにする方法を教えてください。
たとえば、角度ドキュメントから:
= または =attr - attr 属性の値によって定義された name のローカル スコープ プロパティと親スコープ プロパティとの間の双方向バインディングを設定します。属性名が指定されていない場合、属性名はローカル名と同じであると見なされます。スコープのウィジェット定義: { localModel:'=myAttr' } を指定すると、ウィジェット スコープ プロパティ localModel は、親スコープの parentModel の値を反映します。parentModel への変更は localModel に反映され、localModel の変更は parentModel に反映されます。
ただし、その場合、「localModelの変更はparentModelに反映される」ため、そのディレクティブのスコープ内の変数を変更してからscope.apply()を実行すると、それに応じて親スコープと親テンプレートに反映されます変更で更新されます
また、パラメーターとして "scope : true" を実行しようとしましたが、スコープが変更され、その後に scope.$apply(); が続きます。元のスコープにも伝播します...
親スコープからスコープをコピーしても、そのスコープ内の変数の変更が親スコープに反映されないようにする方法はありますか?