ruby-on-rails - 如何在 AngularJS 表达式中访问由 Rails 生成的 JSON 对象的 bool 属性值?

标签 ruby-on-rails ruby json angularjs angularjs-directive

场景:

我在具有 ng-repeat 指令的元素上使用 ng-class 指令。 我将 ng-class 放在我的元素上,以便在满足某些条件时向我的元素添加一个类。 我遇到的问题是我的条件。因为它们来自一些 JSON 我是用 Ruby on Rails 生成的,JSON 中返回 bool 值的键以 问号。当引用时,问号在 JSON 键中完全有效,但是当我尝试使用点表示法在 AngularJS 表达式中访问它们时,Chrome 中的控制台将显示错误:

失败的代码:

<tr ng-repeat="foo in bars" ng-class="{'boo': foo.bar.baz? || !foo.bar.yes? }">

错误:

Error: Lexer Error: Unexpected next character  at columns 39-39 [?] in expression

最佳答案

因此解决方案是通过方括号访问 JSON 键值对,引用键名称。

工作代码:

<tr ng-repeat="foo in bars" ng-class="{'boo': foo.bah['baz?'] || !foo.bar['yes?'] }">

我在使用 AngularJS 1.0.5、Ruby 1.8.7、Rails 2.3.17 时发现了这个解决方案

http://www.json.org/

这里也有一个很好的讨论:

Is there any practical reason to use quoted strings for JSON keys?

关于ruby-on-rails - 如何在 AngularJS 表达式中访问由 Rails 生成的 JSON 对象的 bool 属性值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15350973/

相关文章:

ruby-on-rails - 如何在 Rails 中使用 RSpec 测试处理错误请求?

ruby - 在 Windows 本地主机上运行 Jekyll 的问题

c# - 统一: Saving/Loading Sprites as Json

javascript - 有没有办法覆盖 Olark css?

ruby - capybara-webkit 命令 'qmake -spec win32-g++' 不可用 Windows XP

javascript - Rails Controller 中的 Ajax 功能实现

javascript - 在 Couchdb 中组合 JavaScript 对象

javascript - console.log 如何确定打印对象时要打印哪些属性?

ruby-on-rails - field_for 和带有 mongoid 的嵌套表单

ruby-on-rails - 在rails_admin的 View 中显示模型关联