2015-10-19 48 views
0

下面的兩個表達式引發錯誤的:

ng-click="vm.numOthersAttending++" 
ng-click="vm.numOthersAttending = vm.numOthersAttending > 0 ? vm.numOthersAttending - 1 : 0" 

我不能只是把任何表達的ngClick進行評估?

回答

1
<div ng-click="vm.numOthersAttending = vm.numOthersAttending + 1">click</div> 
<div ng-click="vm.numOthersAttending = (vm.numOthersAttending > 0) ? (vm.numOthersAttending - 1) : 0">click</div> 

一般來說,最好使用函數。

+0

嗯,你可以在此擴展?我傾向於遠離這些類型的內襯的功能,因爲它混亂了控制器。 – pQuestions123

1

Can't I just put any expression in an ngClick for evaluation?

沒有任何表達。你可以把一個角表達,即表達根據this guide

  • Context: JavaScript expressions are evaluated against the global window. In Angular, expressions are evaluated against a scope object.

  • Forgiving: In JavaScript, trying to evaluate undefined properties generates ReferenceError or TypeError. In Angular, expression evaluation is forgiving to undefined and null.

  • No Control Flow Statements: You cannot use the following in an Angular expression: conditionals, loops, or exceptions.

  • No Function Declarations: You cannot declare functions in an Angular expression, even inside ng-init directive.

  • No RegExp Creation With Literal Notation: You cannot create regular expressions in an Angular expression.

  • No Comma And Void Operators: You cannot use , or void in an Angular expression.

  • Filters: You can use filters within expressions to format data before displaying it.

不能使用控制流,但可以使用三元運算符。

您的錯誤來自該部分ng-click="numOthersAttending++"。這不支持。