简单案例:请求控制器$scope
创建子范围。这个新范围将应用于$compile
的链接功能 - 即程序指令实例化。
我的需求落在指令定义中的scope: true
声明之外 - 我执行需要私人指令范围,但我不想要创建一个每次我实例化该指令时,通过框架。相反,我想重新应用现有的范围到一个新的联系 - 一个新的指令。
我,我想教一个新的老狗技巧。
我在谈论scope obtained from the compiled directive(请参阅:从DOM中检索范围)。
考虑指令的HTML表示(让我们称之为“一半”)可以移入和移出文档的场景。我只想保存它的状态(让我们把它称为“另一半”),然后重新应用它到一个新的半编译指令实例。
范围层次结构将得到尊重,即这个新的指令实例将自己置于与以前生活相同的Angular-DOM区域中,因此我认为任何蠕虫漏洞都不会被打开也没有创造反物质。
为你的观赏乐趣而设计的超级plunk。
答案 0 :(得分:4)
如果要在指令中创建私有作用域,可以使用scope.$new方法:
app.directive('colorblock', function ($rootScope) {
link: function (scope, iElement, iAttrs, controller) {
var privateScope = $rootScope.$new(true);
}
...
});
它将创建隔离范围。