AngularJS:指令作用域中的根作用域
例如,我有指令AngularJS:指令作用域中的根作用域,angularjs,angularjs-scope,Angularjs,Angularjs Scope,例如,我有指令 App.directive('module',function($compile) { 返回{ 替换:正确, 限制:'E', 链接:功能(范围、IELENT、iAttrs) { scope.localName='1'; }, 模板:“{name}}-{{localName}}”, } }); 应用程序运行时功能: App.run(函数($rootScope,$location) { $rootScope.name=“测试”; } 因此,通过这种方式,
App.directive('module',function($compile)
{
返回{
替换:正确,
限制:'E',
链接:功能(范围、IELENT、iAttrs)
{
scope.localName='1';
},
模板:“{name}}-{{localName}}”,
}
});
应用程序运行时功能:
App.run(函数($rootScope,$location)
{
$rootScope.name=“测试”;
}
因此,通过这种方式,指令的作用域将与所有指令相同,但此作用域将有权访问$rootScope:
但如果我将创建一个单独的范围:
App.directive('module',function()
{
返回{
替换:正确,
限制:'E',
链接:功能(范围、IELENT、iAttrs)
{
scope.localName='1';
},
模板:“{name}}-{{localName}}”,
作用域:{}
}
});
作用域会有所不同,但它们可以访问$rootScope
所以我需要隔离每个指令的作用域,但我需要这个作用域来访问$rootScope
你能帮我吗?范围:true 不是孤立的,不是共享的,而是每个指令实例一个新的协议继承的作用域 您可以使用
console.log(scope.$id)
记录作用域的id。使用scope:{}
您将得到,例如003和004。使用scope:false
(或无),作用域是共享的,例如,两者都有002。
使用scope:true
时,它们具有不同的id,但可以读取$rootScope
在实时示例中,您可以在局部变量localName
中看到作用域ID。我将伪指令mydir
命名为module
。将模块命名为指令看起来很奇怪
拯救我的生命我不知道这件事会引起这么多问题