在html中访问动态$ scope变量

Kie*_*iee 9 javascript scope angularjs

我正在创建大量的指令,并且所有指令都将包含将在链接函数内初始化的动态范围变量, 例如:

//
link: function(scope, ele, attr){
  scope.key = scope.somevar + 'something_else';
  scope[scope.key] = 'the_value';
}
//
Run Code Online (Sandbox Code Playgroud)

我想通过指令访问指令模板中的值scope.key.

<div ng-if="scope[key]"> something </div>
Run Code Online (Sandbox Code Playgroud)

目前我只通过函数调用看到它是可行的:

HTML

<div ng-if="scope(key)"> something </div>
Run Code Online (Sandbox Code Playgroud)

JS

scope.scope = function(key) {
  return scope[key];
}
Run Code Online (Sandbox Code Playgroud)

但问题是我需要将其复制到所有指令中.

我考虑的另一个选项是将getter函数分配给$rootScope全局可访问但是如何将其绑定到或传入当前指令范围.(如果可能的话).

对此有什么好处?

dfs*_*fsq 16

Angular模板this关键字内部指向当前评估上下文,即当前范围.这意味着您可以通过在this对象上使用括号表示法来实现您的目标:

<div ng-if="this[key]"> something </div>
Run Code Online (Sandbox Code Playgroud)