如何将值从 Backbone 发送到 CodeIgniter 控制器

How to send values from Backbone to a CodeIgniter controller

我正在使用 Backbone.js 和 CodeIgniter 制作一个小型申请表,但我在连接到控制器时遇到问题。

谁能给我提供完整的代码吗?

我的控制器名称是verfylogin。我已经从用户那里获取了用户名和密码,我必须将其传递给控制器​​。

$(function(){

        var Credentials = Backbone.Model.extend({});

        var LoginView = Backbone.View.extend({
          el: $("#login-form"),

          events: {
            "click #login": "login"
          },

          initialize: function(){
            var self = this;

            this.username = $("#username");
            this.password = $("#password");

            this.username.change(function(e){
              self.model.set({username: $(e.currentTarget).val()});
            });

            this.password.change(function(e){
              self.model.set({password: $(e.currentTarget).val()});
            });
          },

          login: function(){
            var username= this.model.get('username');
            var password = this.model.get('password');
            console.log(username,password);
          }
        });

        window.LoginView = new LoginView({model: new Credentials()});

首先请read the Backbone documentation, look at the examples and test them to really understand how it works. Also, take a look at the Backbone.js tag wiki page.

API(后端)使用什么无关紧要,Backbone 通过由 URL 组成的 REST API 与后端通信。

要 link 具有端点 URL 的 Backbone 模型,覆盖 urlRoot property

var Credentials = Backbone.Model.extend({
    // Specify the endpoint URL here
    urlRoot: "api/endpoint" // relative
    // urlRoot: "http://example.com/api/endpoint" // or absolute
});

然后,使用Backbone view's events hash 来管理视图内的事件。避免手动绑定 jQuery 个事件。

var LoginView = Backbone.View.extend({
    events: {
        "click #login": "login",
        "change #username": "onUsernameChange",
        "change #password": "onPasswordChange"
    },

    initialize: function() {
        // create the model here
        this.model = new Credentials();

        // cache jQuery object within the view
        this.$username = this.$("#username");
        this.$password = this.$("#password");
    },

    login: function() {
        // just call save to make a post request with the data.
        this.model.save();
    },

    onUsernameChange: function(e) {
        this.model.set({ username: this.$username.val() });
    },
    onPasswordChange: function(e) {
        this.model.set({ password: this.$password.val() });
    }
});

var loginView = new LoginView({ el: "#login-form" });

这样,上下文 (this) 在事件回调中可用。避免对 el 属性 进行硬编码,而更喜欢在新视图实例的初始化时传递它。

处理 JSON 发布到 CodeIgniter 控制器的数据

由于我不使用 CodeIgniter,我会向您推荐其他资源。