Rails angular 在 rails 下必须用 minify safe 的写法。

hardywu · May 20, 2014 · Last by hardywu replied at May 22, 2014 · 2618 hits

被坑到了。 源代码如下

window.Scixiv.config ($httpProvider) ->
  authToken = $("meta[name=\"csrf-token\"]").attr("content")
  $httpProvider.defaults.headers.common["X-CSRF-TOKEN"] = authToken

在 development 下没问题,放 production 被 minify 之后就出问题。正确写法

window.Scixiv.config ['$httpProvider', ($httpProvider) ->
  authToken = $("meta[name=\"csrf-token\"]").attr("content")
  $httpProvider.defaults.headers.common["X-CSRF-TOKEN"] = authToken
]

还有一些坑,见这里:http://slides.com/windy/angularjs

我上周也分享了一些坑,不过主要是 Ajax 相关的…

https://speakerdeck.com/chitsaou/angularjs-rails-ajax-pitfalls-and-solutions

#2 楼 @chitsaou coool, 遇到了一些,不过我的解决方式一般是:

  1. 直接使用原生的 form 来构造与提交
  2. 没有必要的时候不使用 resources ( 如果不需要复用的话 )
  3. 上传文件用 angular-file 插件来解决吧

整体而言,$http 的坑还是基本上很少的。

很多地方都需要包起来~ 所以每次都包起来肯定没有坑...

5 Floor has deleted

#3 楼 @lyfi2003 你的解决方式和我的完全是反过来的……

顺手发个 vim 快捷键

au FileType coffee nno <buffer><leader>p yyp:s/'//<cr>i(<esc>A)-><esc>:silent noh<CR>

方便用 coffeescript 写 minify safe 的写法:

app.factory('ResourcesFactory', [
  '$resource', '$route', 'Inflection' 光标在这行

按p 就变成这样:

app.factory('ResourcesFactory', [
  '$resource', '$route', 'Inflection'
  ($resource, $route, Inflection)->

原来还是有 angular 用户的。我以为这帖子沉定了。

You need to Sign in before reply, if you don't have an account, please Sign up first.