Javascript Angular的ng类在正在计算的值为时不更新

Javascript Angular的ng类在正在计算的值为时不更新,javascript,angularjs,angular-ui,angular-ui-router,Javascript,Angularjs,Angular Ui,Angular Ui Router,所以,我不知道这里发生了什么。这要么是一个非常明显的误解,要么是ui路由器和ng类之间的错误。我的模板与Jade语法类似: button.back(ng-class="{ 'hidden': {{'index.blog.article' | isState}} }") back ){{'index.blog.article' | isState}}) 在live view中,当状态“index.blog.article”处于非活动状态时,您会看到: <button ng-clas

所以,我不知道这里发生了什么。这要么是一个非常明显的误解,要么是ui路由器和ng类之间的错误。我的模板与Jade语法类似:

button.back(ng-class="{ 'hidden':  {{'index.blog.article' | isState}}    }") back ){{'index.blog.article' | isState}})
在live view中,当状态“index.blog.article”处于非活动状态时,您会看到:

<button ng-class="{ 'hidden':  false }" class="back ng-binding"> back false</button>
如你所料。但是,当该状态处于活动状态时,您会看到:

<button ng-class="{ 'hidden':  true }" class="back ng-binding"> back true</button>

除了类实际上没有改变。所以,模板中的值得到更新,但是ng类没有得到计算?给出了什么?

您是否尝试删除单个报价的?因此,您的代码应该如下所示:

回归真实
您是否尝试删除单个报价的?因此,您的代码应该如下所示:

回归真实
出于某种原因,我不能100%确定为什么,但标签不会更新类,也不会。解决这个问题的工作是用绑定到的任何对象(例如

<button ng-class="{ hidden: true, unHidden: false }" class="{{ index.blog.article }}" />

*检查第一个按钮,您将看到类的更改

出于某种原因,我无法100%确定原因,但标记不会更新类,也不会。解决这个问题的工作是用绑定到的任何对象(例如

<button ng-class="{ hidden: true, unHidden: false }" class="{{ index.blog.article }}" />
*检查第一个按钮,您将看到可以使用的类更改

ng-class="isState('article')?'hidden':''"

with isState是作用域上的一个函数,将$state.current.name与参数进行比较,并返回true或false

查看我的JSFIDLE,它与按钮或

编辑下一个解决方案也可以,如果你的后退按钮在你的控制器外面的话,只需意识到ui路由器有这个功能isState调用它“is”

因此,您可以将$state添加到$rootScope

angular.module('myApp').run(function ($rootScope, $state, $stateParams) {
 $rootScope.$state = $state;
 $rootScope.$stateParams = $stateParams;
})

然后在你的后退按钮中使用这个

ng-class="{'hidden':$state.is('article')}"
你可以用

ng-class="isState('article')?'hidden':''"

with isState是作用域上的一个函数,将$state.current.name与参数进行比较,并返回true或false

查看我的JSFIDLE,它与按钮或

编辑下一个解决方案也可以,如果你的后退按钮在你的控制器外面的话,只需意识到ui路由器有这个功能isState调用它“is”

因此,您可以将$state添加到$rootScope

angular.module('myApp').run(function ($rootScope, $state, $stateParams) {
 $rootScope.$state = $state;
 $rootScope.$stateParams = $stateParams;
})

然后在你的后退按钮中使用这个

ng-class="{'hidden':$state.is('article')}"

很有趣,但在我的情况下,它似乎并不能解决这个问题。也发生在普通的s上。事实上,这很奇怪。我可以在类中看到true/false值,但它不会添加ng类中声明的类…并且ng类标记中的其他类将更新。我完全被难住了。很有趣,但它似乎不能解决我的问题。也发生在普通的s上。事实上,这很奇怪。我可以在类中看到true/false值,但它不会添加ng类中声明的类…并且ng类标记中的其他类将更新。我完全被难住了。此外,我正在使用Angular 1.4-beta3和最新的ui-router。此外,我正在使用Angular 1.4-beta3和最新的ui-router。