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 调用返回成功并且您更新该数组时,handlebars 模板将为您更新它,而无需任何 DOM 或 jQuery 胶水代码

于 2013-05-30T15:33:48.263 回答