Javascript 如何访问模型&x27;s data controller INDER指令中的这些已定义为;这是什么;?

Javascript 如何访问模型&x27;s data controller INDER指令中的这些已定义为;这是什么;?,javascript,angularjs,Javascript,Angularjs,我把access数据和指令混淆了,特别是当我定义了我的模型时,比如: vm = this; vm.myModel = "hello"; 我的指示是: function mySelectedAccount(){ return { restrict: 'A', link: function(scope, element, attrs) { element.on('click', function() { con

我把access数据和指令混淆了,特别是当我定义了我的模型时,比如:

vm = this;
vm.myModel = "hello";
我的指示是:

function mySelectedAccount(){
      return {
        restrict: 'A',
        link: function(scope, element, attrs) {
          element.on('click', function() {
            console.log(scope.myModel);                
          });
        }
      }
    }
由于我没有使用$scope,如何在指令中访问控制器中定义的“myModel”?如果我尝试使用指令中的scope参数访问它,我将无法定义


感谢您抽出时间来这里,您的
vm
变量引用了您的控制器实例。在您的作用域中,将控制器上下文注册到
vm
变量中

因此,您可以:

控制器

(function(){

function Controller($scope) {

  var vm = this;
  vm.myModel = 'toto';

}

angular
.module('app', [])
.controller('ctrl', Controller);

})();
指令

(function(){

  function directive() {
    return {
      link:function(scope, element, attrs){
        element.on('click', function() {
          //Access to vm property wrap into the scope
          console.log(scope.vm.myModel);
        });
      }
    };
  }

angular
  .module('app')
  .directive('directive', directive);

})();
然后在html中,您可以使用controllerAs语法:

HTML

  <body ng-app='app' ng-controller="ctrl as vm">
    <div directive>{{vm.myModel}}</div>
  </body>

{{vm.myModel}}

您可以在这里看到

非常感谢!你的回答很有帮助!:)