0

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");
    }
  });
};
4

1 に答える 1