• 主页
  • 为什么隔离作用域“不能与angularJs的指令中的controllerAs一起使用

为什么隔离作用域“不能与angularJs的指令中的controllerAs一起使用

index.html

<div ng-app="phoneApp">
  <div ng-controller="ctrl as AppCtrl">
    <div phone dial="ctrl.callHome('called home!')"></div>
  </div>
</div>

app.js:

var app = angular.module('phoneApp', []);

app.controller("AppCtrl", function ($scope) {
  var ctrl = this;
  ctrl.callHome = function (message) {
    alert(message);
  };
});

app.directive("phone", function () {
  return {
    scope: {},
    bindToController : {
      dial: "&"
    },
    controller       : controller,
    controllerAs     : 'controllerVM',

    templateUrl : 'node.html'
  };

  function controller(){
    controllerVM.onClick = function(){
      controllerVM.dial();
    }
  }
});

node.html:

<button ng-click="controllerVM.onClick()">Button</button>

当我点击电话指令的按钮时,它应该调用AppCtrl的函数callHome,但是它没有被调用。

当我从every中删除controllerAs并直接从模板调用指令拨号函数时,它可以正常工作

所以请帮帮我,我错过了什么?

提前感谢:)

转载请注明出处:http://www.jxbyjx.net/article/20230520/1984724.html