如何将值从 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,我会向您推荐其他资源。
- Working with restful services in CodeIgniter
- Post JSON to Codeigniter controller
- Get JSON response In Codeigniter
- Code Igniter - How to return Json response from 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,我会向您推荐其他资源。
- Working with restful services in CodeIgniter
- Post JSON to Codeigniter controller
- Get JSON response In Codeigniter
- Code Igniter - How to return Json response from controller