javascript - ng-if 语句以一种方式工作,但不以另一种方式工作,为什么?

标签 javascript angularjs conditional-statements

当我像这样写 ng-if 语句时......

ng-if="$state.params.Step != vm.$localStorage.builder[$state.params.ID].Data.Steps.length - 2 && vm.$localStorage.builder[$ state.params.ID].Data.Steps.length - 1"

它根本不起作用。我认为上面只是一个较短的形式...

ng-if="$state.params.Step != vm.$localStorage.builder[$state.params.ID].Data.Steps.length - 2 && $state.params.Step != vm.$localStorage.builder[$state.params.ID].Data.Steps.length - 1"

我做错了什么?如果可以的话,我不想重复自己的话。

最佳答案

ng-if="$state.params.Step != vm.$localStorage.builder[$state.params.ID].Data.Steps.length - 2 && vm.$localStorage.builder[$state.params.ID].Data.Steps.length - 1"

这基本上是在说:

($state.params.Step != vm.$localStorage.builder[$state.params.ID].Data.Steps.length - 2) &&
 vm.$localStorage.builder[$state.params.ID].Data.Steps.length - 1

然后&&将结果与最后一个数字进行比较。有效的;几乎肯定不是您想要的。

这个逻辑几乎肯定应该从几乎无法阅读的 ng-if 中移出。

关于javascript - ng-if 语句以一种方式工作,但不以另一种方式工作,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35161242/

相关文章:

javascript - TypeScript import/as vs import/require?

javascript - 服务内部的数据更改不会更新范围

python - 基于现有列值的新列

java - 如何在条件 (if/then) 语句中包含范围?

javascript - 使用现有 SVG 路径遮盖图像

javascript - 如何处理授权 token

javascript - 滑动菜单,如何同时滑入和滑出?

angularjs - 如何使用 angular-ui-router 滚动到页面的某个区域?

javascript - 从数组中选择复选框时出错

PHP/mysql条件更新查询