0

私は自分で Ember.js を勉強していますが、サンプル アプリを作成しているときに問題が発生しました。クライアント側の値をサーバー側に送信する必要がありますが、その方法がわかりません。以下のコード

function create() {
        var data = {
            'EmailID': $('#emailid').val(),
            'password': $('#password').val()
        }

        $.ajax({
            url: '/EmberNew/Home/Create',
            type: 'POST',
            data:data,
            success: function (response) {
                alert("hi");
            }
        });
        return false;
    }

しかし、Emberでは、現在のコードを以下に示す方法を知りません

//Application

App = Em.Application.create();

//Model

App.Users = Em.Object.extend({
    name: null,
    password:null
});

//View
App.UserTextField = Em.TextField.extend({
    insertNew: function () {
        App.alertController.alertDetails();
    }
});

App.PassTextField = Em.TextField.extend({
    insertNew: function () {
        App.alertController.alertDetails();
    }
});

//controller

App.AlertController = Em.ObjectController.extend({
    content: [],
    username: '',
    password: '',
    alertDetails: function () {
        var me = this;
        var username = me.get("username");
        var password = me.get("password");
        alert('The User Name Is' + 'username' + 'And Password Is' + 'password');
    }
});
App.alertController = App.AlertController.create();

alertDetails 関数からテキストボックスの値を取得しましたが、それらをサーバー側に渡すにはどうすればよいですか

4

1 に答える 1

0
App.Record = Ember.Object.extend({
  name: '',
  other: ''
}).reopenClass({
  records: [],
  find: function() {
    var self = this;
    $.ajax({
      url: "/api/records/",
      type: "GET",
      cache: false,
      dataType: "json",
      beforeSend: function() {
        //if you want to call this often and need to clear + reload it
        return self.records.clear();
      },
      success: function(results) {
        var result;
        for (_i = 0, _len = results.length; _i < _len; _i++) {
            result = results[_i];
            self.records.push(self.records.addObject(App.Record.create(result)));
        }
      },
      error: function() {
        return alert("error: failed to load the records");
      }
    });
    return this.records;
  }
});

モデルのセットアップが完了したので、ルート モデル フックから呼び出すことができます。

App.RecordsRoute = Ember.Route.extend({
    model: function() {
    return App.Record.find();
    }
});

find メソッドはすぐに空の配列を返し、テンプレートはそれにバインドされます。ajax呼び出しが成功して返され、その配列を更新すると、DOMまたはjQueryグルーコードなしでハンドルバーテンプレートが更新されます

于 2013-05-30T15:33:48.263 に答える