访问已编译指令的隔离范围

时间:2015-07-30 10:27:26

标签: javascript angularjs

我正在使用以下代码成功编译指令:

var element, $injector, $compile, link, scope;

element = angular.element(document.getElementById(#whatever));
$injector = element.injector();
$compile = $injector.get('$compile');
link = $compile(angular.element('<my-directive></my-directive>'));

scope = element.scope();
scope.foo = 'foo'; // I want to place this on the isolate scope!
element.append(link(scope));

该指令具有隔离范围。上面的scope变量为我提供了父元素的范围。如何获得指令的隔离范围?

2 个答案:

答案 0 :(得分:1)

Angular element对象具有一些预定义的函数,例如isolatedScope。挑战在于将其称为正确的元素。这样的事情有效:

angular.element(link(scope)).isolateScope()

在这里,您可以获取指令的已编译+链接的html片段,然后调用isolatedScope()函数来获取隔离的范围。

答案 1 :(得分:1)

使用link(scope).isolateScope()获取已编译元素的隔离范围