我试图从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>
答案 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