this.model里面指向的角度

时间:2016-01-14 19:31:47

标签: angularjs controller directive

我怀疑如何使用this.model

来咨询Angular中的控制器模型

如果我有下一个控制器:

angular
.module("myApp", [])
.controller('myCtrl', myCtrl)
.directive('myDirective', myDirective);

function myCtrl(){
  var vm = this;

  //model
  vm.myModel = "whatever";
}

//my directive    
function myDirective(){
  return {
    restrict: 'A',
    link: function(scope, element, attrs) {
       // here!
      // how can I acces to the myModel model if it was defined with 'this'
    }
  }
}

如果我的模型是这样的:

$scope.myModel

我可以在myDirective中使用scope.myModel读取它,但是使用"这个(vm.myModel)"我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:1)

它作为范围参数传入。

scope.myModel

vm语法的情况下,它成为范围参数的另一层。例如:

scope.vm.myModel

答案 1 :(得分:1)

您可以使用

获取指令的任何父控制器
angular.element.parent().controller();

这是一个工作小提琴。

http://jsfiddle.net/HB7LU/22226/

使用此代码,如果我将控制器中的vm更改为其他内容,我不需要更改指令的代码。