0

我正在尝试自己研究 Ember.js,但遇到了一个问题,我想使用 ajax 函数调用服务器端方法,但它没有按计划工作我可以调用该函数并提醒输入,但无法传递值到服务器端,我当前的代码如下

//Application
App = Em.Application.create();

//Model

App.Users = Em.Object.extend({
    EmailID: null,
    Password: null
});

//View
App.UserTextField = Em.TextField.extend({

});

App.PassTextField = Em.TextField.extend({

});

//controller

App.AlertController = Em.ObjectController.extend({
    content: [],
    username: '',
    password: '',
    alertDetails: function () {
        var me = this;
        var username = me.get("username");
        var pass = me.get("password");
        alert(username + ' ' + pass);
        var data = App.Users.create({
            EmailID: username,
            Password: pass,
            passData: function () {
                $.ajax({
                    url: '/EmberNewFinal/Home/Create',
                    dataType: 'json',
                    type: 'POST',
                    data: data,
                    success: function (response) {
                        alert("hi");
                    }
                });
            }
        });

    }
});
App.alertController = App.AlertController.create();

我找不到我的代码的问题,请帮我找出答案

提前致谢.....

4

1 回答 1

0

我建议你阅读这篇关于如何在没有 ember 数据的情况下使 ember 工作的博客文章。多读几遍,直到明白为止。

代码中有几个错误。您正在使用 passData 方法使数据成为对象。该方法永远不会被调用,因此数据不会被持久化。此外,您无法在其内部引用数据并使其正常工作。最好做这样的事情。

App.AlertController = Em.ObjectController.extend({
  content: [],
  username: '',
  password: '',
  alertDetails: function () {
    var data = {'username': this.get("username"),  
                'password': this.get("password")}
    $.ajax({
      url: '/EmberNewFinal/Home/Create',
      dataType: 'json',
      type: 'POST',
      data: data,
      success: function (response) {
        alert("hi");
      }
    });
  }
});

注意:这会将数据发送到您的 API,但不会将其存储在 ember 中的任何位置。如果您想稍后访问该数据,则需要将其存储在某个地方。再次查看Evil Trout 的博客以获取更多信息。

于 2013-05-30T08:47:40.920 回答