की आवश्यकता है मैं एक उपयोगकर्ता सत्र मॉडल बनाना चाहता हूं, जो jQuery कुकी प्लगइन का उपयोग कर कुकी में सत्र आईडी लोड और सहेजता है।जेएस रीढ़ की हड्डी जेएस वैश्विक मॉडल
यह मेरा UserSession मॉडल मॉड्यूल के लिए मेरी कोड है:
define(['jQuery', 'Underscore', 'Backbone'],
function($, _, Backbone){
var UserSession = Backbone.Model.extend({
defaults: {
'accessToken': null,
'userId': null
},
initialize: function(){
this.load();
},
authenticated: function(){
return Boolean(this.get('accessToken'));
},
save: function(authHash){
$.cookie('userId', authHash.id);
$.cookie('accessToken', authHash.accessToken);
},
load: function(){
this.userId = $.cookie('userId');
this.accessToken = $.cookie('accessToken');
}
})
return UserSession;
});
लेकिन कहते हैं कि मैं अपना लॉगिन दृश्य में इसे का उपयोग करना चाहते हैं:
define(['jQuery', 'Underscore', 'Backbone', 'text!templates/login.html', 'models/UserLogin', 'models/UserSession'],
function($, _, Backbone, loginTemplate, UserLogin, UserSession){
var LoginView = Backbone.View.extend({
model: new UserLogin,
el: $('#screen'),
events: {
'submit #frm-login': 'login'
},
login: function(e){
e.preventDefault(); // Lets not actually submit.
this.model.set({
'username': $('#login-username').val(),
'password': $('#login-password').val()
});
this.model.save(null, {
success: function(nextModel, response){
// Do something here with UserSession model
},
error: function(){
}
});
},
render: function(){
$(this.el).html(_.template(loginTemplate, {}));
return this;
}
});
return new LoginView;
});
बात है हर बार मैं UserSession का उपयोग मॉड्यूल में मॉडल (model.save सफलता कॉल बैक फ़ंक्शन देखें) यह डिफ़ॉल्ट मानों का उपयोग करता है, इसलिए मुझे UserSession मॉडल के किसी प्रकार का सिंगलटन उदाहरण होना चाहिए, मैं यह कैसे कर सकता हूं?
मेरा पहला विचार ऐप नेमस्पेस का उपयोग करना था, इसलिए हमारे main.js (पहले मुख्य मॉड्यूल जो लोड हो जाता है) में और वहां UserSession मॉड्यूल प्रारंभ होता है, और प्रत्येक बार जब मॉड्यूल उस मॉड्यूल तक पहुंच जाता है, तो उस मुख्य मॉड्यूल की आवश्यकता होती है एक ऑब्जेक्ट जो UserSession उदाहरण देता है।
यह कैसे किया जा सकता है?
धन्यवाद
आपका पहला विचार सही समाधान प्रतीत होता है। अन्यथा, आपको स्थानीय-स्टोरेज/कुकीज़ और ऐसी सामग्री में उपयोगकर्ता-सत्र को स्टोर करना होगा ... –
आप सर्वर पर सत्र कैसे उत्पन्न करते हैं और इसे एक्सेस करते हैं? मैं एक ही दृष्टिकोण का उपयोग करना चाहता हूं लेकिन मुझे कुकी सामग्री तक पहुंचने में समस्याएं आ रही हैं। मेरे पास लॉगिन दृश्य नहीं है क्योंकि यह सर्वर द्वारा प्रस्तुत किया जाता है। – Gambo