当我尝试使用字符串时,为什么AngularJS会抱怨表达式中的意外标记?

big*_*ind 8 expression syntax-error angularjs

我在div上有以下属性:ng-show="state.name === 'index'".我也尝试过ng-show='state.name === "index",但我一直收到以下错误:

语法错误:令牌' "index"'是从表达式的第16列[state.name === "index"]开始的意外标记["index"].

为什么?

btf*_*ord 16

ng-show采用"AngularJS声明".这种类型的语句只有一个==运算符,但是这个运算符的行为类似===.这有点令人困惑,但是方便的是你不能用怪异的类型强制射击自己.


big*_*ind 3

我发现了问题。相反"state.name==='index'",我应该写"state.name=='index'"。pkoziowski.opensource 是对的,因为你不能使用条件语句,但他们的意思是,你不能使用 if 语句或任何与此相关的控制流语句,所以你不能这样做:

<span ng-init="if(state.name == 'o'){doFoo();}">o</span>
Run Code Online (Sandbox Code Playgroud)