リア充爆発日記

You don't even know what ria-ju really is.

backbone.js

Cannot use 'in' operator to search for 'model' in hogehoge

Uncaught TypeError: Cannot use 'in' operator to search for 'model' in #{element} こんなエラーがでたら・・・たぶんBackbone.Viewのコンストラクタに複数の引数を渡しているのでは。initializeは引数1つしかとらないので、ハッシュで渡そうず。 で、ま…

Backbone.jsでClassをまたいだ共通処理を扱いたいときのメモ

twitterの「フォローする」ボタン的なものがあって、それはtwitterみたいに色んな画面(View)に登場する。 ボタンの動き自体は、1つのView(MyAPP.View.UserRelationButton)にまとまっているんだけど、こんな感じで、UserRelationButtonの初期化は、DOMから…

Backbone.jsを使っているのならオブザーバーパターンの導入も瞬殺な件

わざわざ実装せんでもだいじょうび。http://backbonejs.org/#Events var object = {}; _.extend(object, Backbone.Events); object.on("alert", function(msg) { alert("Triggered " + msg); }); object.trigger("alert", "an event"); ということでこれだけ…

RailsでBackboneを使いながらDRYにi18n

これを使えばOK牧場。 https://github.com/fnando/i18n-jsGemfile gem 'i18n-js' application.js //= require i18n //= require i18n/translations configファイル生成 bundle exec rake i18n:js:setup※ホントはこのプロセスは要らないのだけど、sprocketの…

backboneでfetch()のときにquery stringを渡したいときー

渡したいときーfetch()のときにdataにひっくるめて渡す User.fetch({data: {foo: bar}}) そんだけ。

collectionにmodelをcreateしたときに追加したやつが最後にくるのをなんとかしたい件

あるユーザーのなんかの投稿に対して、別のユーザーがコメントできるのはよくあるじゃないですか。 それをbackbone.jsでやろうとするとModelsとCollectionsをそれぞれ実装することになると思う。こんな感じ Models.Comment class YourAPP.Models.Comment ext…

backbone.jsでdestroyとかcreateのsuccessコールバックが発火しない

このへんはresponseにJSONが帰ってこないと発火してくれないらしい。なんだよそれ。 head :created こんなふうだと発火してくれないので、しょうがないから render status: :created, json: {} ってやる。すると発火する。そういうわけで。

backbone.js+railsでsaveのときにSyncしてほしくない項目をなんとかする方法

paperclipで管理している画像パスを以下のように取得すると困ることになるかも。 def show data = hoge.find(params[:id]) respond_with data, methods: [:image] end これで帰ってきたJSONのimageは"/saver_side_path/to/image"なのだけどもsave()を呼んだ…

backbone.jsでrails3とかのhas_manyとかhas_oneとかを実装

追記1)以下の内容は、更新系でうまく動かない可能性があるので、ご了承ください。修正できたら直します。 追記2)hasOne側は登録・更新までの動作検証ができた。 追記3)hasMany側も動作検証できた。ので、いちおう、これで終わり。ここんとこbackbone.j…

backbone.jsでfetch()でもsave()でもとにかくエラーハンドラが発火してしまう。

ハマった。いやぁ、ハマった。サーバサイドはきっちり200系でレスポンス返してるのに、クライアントサイドでエラーハンドラが発火するという現象に悩まされていた。2時間以上、デバッグやトライアンドエラーをしてみたけど、まったくわからなかった。けど、…

backbone.jsでajaxのリクエスト先を別のHostにする方法

Same-Origin PolicyはCORSなどで対処していただくとして。最初に通るところ(your_app.js.coffeeのinitializeあたりがいいのかな)で、$.ajaxPrefilterを使う。 window.YourApp = Models: {} Collections: {} Views: {} Routers: {} initialize: -> $.ajaxPr…

Rails3にbackbone.jsを導入する

JavaScript(CoffeeScript)をどうやって、疎に、DRYに保つか、ということはいつも考えながらも、最終的にはムスビのコトワリに導かれゆく結末をたどってきたのですが、近頃ではJSにも各種フレームワークが浸透してきており、その中でもデファクトの地位を確立…

rails3 + backbone.jsでデータのやり取りをするために。

RailsでWEB APIサーバを作るときのアーキテクチャをどうするか考える RESTful APIとWebサイトを1つのアプリケーションで作るで、この時はAndroidアプリしかAPIを使うクライアントはいなかったんだけど、等々HTMLから使うときが来ました! この時のために、…