无法从angularjs调用javascript原型函数

时间:2015-03-31 01:18:54

标签: javascript jquery angularjs javascript-events

我试图从ng-click of hyperlink调用javascript原型函数,如下所示。但我无法在链接点击时触发getInfo()函数。我错过了任何基础知识或做错了吗?

这是我的JS

$(document).ready(function () {
    function Apple() {
        this.type = "fff";
        this.color = "red";

    }
    Apple.prototype.getInfo = function () {
        alert( this.color + ' ' + this.type + ' apple');
    };
    var appl = new Apple();
});

这是我的HTML

  <a href="" ng-click="appl.getInfo()">click</a>

1 个答案:

答案 0 :(得分:1)

查看上面的代码,我相信问题在于您没有将appl暴露给您的via(通过$scope)。你需要做更多这样的事情:

var MyController = function($scope) {
  function Apple() {
    this.type = "fff";
    this.color = "red";

  };
  Apple.prototype.getInfo = function () {
    alert( this.color + ' ' + this.type + ' apple');
  };
  $scope.appl = new Apple();
};

然后:

<div ng-controller="MyController">
   <a href="" ng-click="appl.getInfo()">click</a>
</div>

再详细说明一下,传递给Angular的ngClick的表达式在Angular $scope的上下文中进行评估(不在它们在DOM中的位置的上下文中)。您可以通过查看source of ngClick

来查看此内容