Ember を使用して Rails の Devise 登録の JavaScript 実装を作成するこのデモ アプリhttps://github.com/kagemusha/ember-rails-devise-demoをいじっています。このアプリは CoffeeScript を使用しています。coffeescript.org Web サイトのコンパイラを使用して JavaScript に変換しましたが、予期しないトークン エラーと文字列エラーが発生しました。 .
たとえば、設定ファイルの先頭で、コードはこのメモ化チェックを行います (coffeescript バージョンと JavaScript バージョンの両方で構文は同じです)。
App.urls ||= {}
アプリをロードすると、このエラーがトリガーされます。
Uncaught SyntaxError: Unexpected token = :3000/assets/settings.js?body=1:1
authentications_helper ファイルの同じタイプのコードで同じことが起こります
App.Authentication ||= {}
このエラーの原因
Uncaught SyntaxError: Unexpected token = authentication_helper.js:1
ただし、authentication_helper ファイル内の残りのコードにも明らかに影響します。登録しようとすると、テンプレートのリンクをクリックします
{{view App.MenuItem href="#/registration" label="Register"}}
App.RegistrationRoute で register 関数を呼び出します
App.RegistrationRoute = Ember.Route.extend({
model: function() {
Ember.Object.create();
},
actions: {
register: function() {
log.info("Registering...");
App.Authentication.register(this);
},
authentication_helper ファイル (App.Authentication ||= {}
先頭に があるファイル) でこの登録機能をトリガーしようとしますが、
Uncaught TypeError: Cannot call method 'register' of undefined
この App.Authentication はdefined
、キャッシュ関数の予期しない = に関連するエラーが原因ではないと推測しています。
これらのエラーを改善するのに十分なコードを提供しましたか?
App.Authentication.register = function(route) {
$.ajax({
url: App.urls.register,
type: "POST",
data: {
"user[name]": route.currentModel.name,
"user[email]": route.currentModel.email,
"user[password]": route.currentModel.password,
"user[password_confirmation]": route.currentModel.password_confirmation
},
success: function(data) {
App.currentUser = data.user;
App.LoginStateManager.transitionTo("authenticated");
route.transitionTo('home');
},
error: function(jqXHR, textStatus, errorThrown) {
route.controllerFor('registration').set("errorMsg", "That email/password combo didn't work. Please try again");
}
});
};