从控制器获取对指令变量的访问权限

时间:2015-11-09 16:52:38

标签: javascript angularjs

我创建了一个指令,我在我的模板中使用:

<data-input> </data-input>

在我的指令(dataInput)中,我有模板(... data-input.html)。 在该模板中,html代码表示:

<input ng-change="dataChanged()" ... > ...

在JavaScript中说:

scope.dataChanged= function(){ //change the data }

完美运行,但知道我需要将已更改的数据保存到我的控制器中的变量(当然具有不同的范围)。 模板,我将<data-input> </data-input>放在最终范围内,我试图达到。

我通过参数尝试了它,但它没有用。 感谢

2 个答案:

答案 0 :(得分:0)

以下是您的选择:

  1. 如果可能,您可以嵌套控制器。这将创建范围继承,您将能够共享父级的变量。

  2. 您可以使用两个控制器中的$rootscope来共享数据。您的dataChanged功能可以将任何内容保存到$rootscope

  3. 您可以使用angular.element来获取任何元素的范围。 angular.element('data-input').scope()返回它的应对。

  4. 不建议这样做。但是在某些情况下,人们使用全局空间在角度和非角度代码之间进行通信。但我不认为这是你的情况。

答案 1 :(得分:-1)

您可以使用Angular Watches查看更改是一些变量,例如

例如:

$scope.$watch('age + name', function () {
  //called when variables 'name' or 'age' changed
  //Or you can use just 'age'
});