【问题标题】:Form for tags not accepting angular js attributes不接受 Angular js 属性的标签表单
【发布时间】:2012-12-05 02:21:36
【问题描述】:

我有表单标签助手,例如

form_for(:session, url: sessions_path, name: "signin_form", "ng-controller": 
"signinctrl") do |f| %>

每当我访问该页面时,我都会从 rails 收到错误提示

unexpected tASSOC

为什么 Rails 不接受 ng-controller 属性?我的控制器是在不同的文件中定义的,而我的 ng-app 是在 html 标记中定义的。

【问题讨论】:

  • 您似乎忘记关闭签名表格的引号,应该是"signin_form", ng-controller: "signinctrl"
  • 也因为破折号将 ng-controller 更改为 "ng-controller":"signinctrl"
  • 抱歉,我没有正确复制代码。在 signin_form 之后应该有一个双括号。我现在就解决这个问题。
  • 嗯...现在我在ng-controller 周围添加括号时收到错误expecting tASSOC
  • 我有一段时间没用过rails了,也许你把hash键作为符号传递:"ng-controller"=> "..."

标签: html ruby-on-rails angularjs ruby-on-rails-3


【解决方案1】:

问题出在这里:"ng-controller": "signinctrl"

Ruby 1.9 哈希语法仅支持符号(不带冒号),例如 ng-controller: "signinctrl"(与 :ng-controller => "signinctrl" 相同。

要修复它,您只需使用 1.8 样式的哈希语法。您可以在不更改其余属性的情况下将其混合并匹配到哈希中:

form_for(:session, url: sessions_path, name: "signin_form", "ng-controller" => "signinctrl") do |f| %>

【讨论】:

    【解决方案2】:

    你试过“data-ng-controller”吗?

    【讨论】:

    • 没有更多的想法。对不起你:s
    猜你喜欢
    • 2015-05-21
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-06
    相关资源
    最近更新 更多