Angular's ng类未更新,而正在评估的值为
Angular's ng-class is not updating while the value being evaluated is
所以,我不知道这里发生了什么。这要么是一个极其明显的误解,要么是ui路由器和ng类之间的bug。我的模板如下(使用Jade语法):
button.back(ng-class="{ 'hidden': {{'index.blog.article' | isState}} }") back ){{'index.blog.article' | isState}})
在实时视图中,当状态"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>
标记不会更新类,<input type="button">
也不会。围绕这一点的工作是用绑定到的任何东西(如)来声明类
<button ng-class="{ hidden: true, unHidden: false }" class="{{ index.blog.article }}" />
JSFiddle
*检查第一个按钮,您将看到类更改
您可以使用
ng-class="isState('article')?'hidden':''"
或
ng-class="{'hidden':isState('article')}"
isState是作用域上的一个函数,将$state.current.name与param进行比较并返回true或false
看看我的jsfiddle,它和按钮一起工作http://jsfiddle.net/5aj4qy81/或http://jsfiddle.net/5aj4qy81/1/
编辑下一个解决方案也适用,如果您的后退按钮在控制器之外,只需意识到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')}"
http://jsfiddle.net/5aj4qy81/3/
是否尝试删除单引号?所以你的代码应该是这样的:
<div ng-class="{ hidden: true }" ...> back true</div>
相关文章:
- Javascript循环不会自我更新
- 添加文字和评论功能更新Div
- AngularJS:ng之后,重复$scope值未按预期更新
- 如何通过数组更新角度子范围
- Ajax聊天消息重复而不仅仅是更新
- 通过CSV文件上载更新数据库表
- 平均值:无法将数据更新到数据库
- $rootScope未使用forEach进行更新
- d3基于用户选择动态更新节点
- 有条件更新d3.js力图中节点的最佳方法
- Angular:更新一次性绑定的数据
- Javascript更新孙窗口中的表单元素
- 使用AngularJS中的筛选器更新给定的表
- 使用正则表达式评估电子邮件地址时出现性能问题
- 从选项页面更新chrome扩展清单权限
- 如何在不刷新页面的情况下更新显示框
- 延期承诺值未更新/解析/延期
- 标记的实时更新,无需加载页面谷歌地图API V3
- Angular's ng类未更新,而正在评估的值为
- 推迟或暂停敲除中的依赖项评估,直到视图模型完全更新(例如使用映射插件)