angularjs typeError:boolean不是一个函数ng-click多个动作

时间:2015-01-16 08:36:38

标签: angularjs angularjs-ng-click

试图实现这个目标时:

<li class="answer"><a href="javascript:void(0)" ng-class="answer.show[$index] ? 'selected' : ''" ng-click="(answer.Questions.length > 0) ? (answer.show[$index]=!answer.show[$index]) (setAnswer(question, answer.ID)) : setAnswer(question, answer.ID)">{{answer.Description}}</a></li>


TypeError: boolean is not a function
    at $parseFunctionCall (http://localhost/assets/scripts/vendor/bower_components/angular/angular.js:12333:15)
    at $parseTernary (http://localhost//assets/scripts/vendor/bower_components/angular/angular.js:12185:39)
    at ngEventDirectives.(anonymous function).compile.element.on.callback (http://localhost/assets/scripts/vendor/bower_components/angular/angular.js:22949:17)
    at Scope.$get.Scope.$eval (http://localhost/assets/scripts/vendor/bower_components/angular/angular.js:14383:28)
    at Scope.$get.Scope.$apply (http://localhost/assets/scripts/vendor/bower_components/angular/angular.js:14482:23)
    at HTMLAnchorElement.<anonymous> (http://localhost/assets/scripts/vendor/bower_components/angular/angular.js:22954:23)
    at HTMLAnchorElement.eventHandler (http://localhost/assets/scripts/vendor/bower_components/angular/angular.js:3011:21)angular.js:11594 (anonymous function)angular.js:8544 $getangular.js:14484 $get.Scope.$applyangular.js:22954 (anonymous function)angular.js:3011 eventHandler


The problem is on my ng-click:

(answer.Questions.length > 0) ? (answer.show[$index]=!answer.show[$index]) (setAnswer(question, answer.ID)) : setAnswer(question, answer.ID)

我应该如何正确地写这个?

1 个答案:

答案 0 :(得分:1)

如果没有必要,我不会在你看来放这么多东西。创建一个函数并传递您需要的东西并从那里进行评估。

另外,

ng-click="(answer.Questions.length > 0) ? (answer.show[$index]=!answer.show[$index]) (setAnswer(question, answer.ID)) : setAnswer(question, answer.ID)"
如果你想做什么,这看起来像是错误的三元操作?

如果我理解正确:

如果answer.Questions.length&gt; 0,然后(setAnswer(question,answer.ID)),如果不是setAnswer(question,answer.ID)。

的这一部分是什么?
(answer.show[$index]=!answer.show[$index])

也许你想要像

这样的东西
((answer.Questions.length > 0) && (answer.show[$index]=!answer.show[$index])) ? (setAnswer(question, answer.ID)) : setAnswer(question, answer.ID)