AngularJS字符串不是函数

时间:2014-04-05 22:30:35

标签: javascript jquery node.js angularjs

为了缩短帖子,这是我的问题所需的所有信息,所以我点击了一个按钮给出了+1等级和一个-1等级的按钮,这是它的HTML代码,

<p>
<strong>Rating: </strong> {{ album.rating }}
<button class="btn btn-small" ng-click="upVoteRating(album)">+</button>
<button class="btn btn-small" ng-click="downVoteRating(album)">-</button>
</p>

没有什么不寻常的,继承了使用范围和按钮功能的angularjs代码。

$scope. upVoteRating = 'upVoteRating';
$scope. downVoteRating = 'downVoteRating';

function upVoteRating(album) {

album.rating++;

}

function downVoteRating(album) {

if (album.rating > 0)
album.rating--;

}

因此我的猜测对代码没有问题,但每次我点击页面上的按钮时,它都会在控制台上显示:

"TypeError: string is not a function
at http://localhost:1234/lib/angular/angular.min.js:168:37
at http://localhost:1234/lib/angular/angular.min.js:186:167
at g.$eval (http://localhost:1234/lib/angular/angular.min.js:104:308)
at g.$apply (http://localhost:1234/lib/angular/angular.min.js:105:48)
at HTMLButtonElement.o.event.dispatch (http://localhost:1234/lib/jquery-2.1.0.min.js:3:6055)
at HTMLButtonElement.r.handle (http://localhost:1234/lib/jquery-2.1.0.min.js:3:2830) angular.js:9507"

我不知道如何解决此问题,我一直在寻找一个小时,所以,如果您需要更多代码来帮助您找到问题,请立即询问!

再次感谢!

1 个答案:

答案 0 :(得分:3)

您可以在此处将其设置为字符串:

$scope.upVoteRating = 'upVoteRating';

并尝试将其称为此处的函数

<button class="btn btn-small" ng-click="upVoteRating(album)">+</button>

删除控制器中的引号,你应该是好的:

$scope.upVoteRating = upVoteRating;
$scope.downVoteRating = downVoteRating;