JSFiddle - React, Tailwind, and code Playground
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.2.1/backbone-min.js"></script>
JavaScript
var Markdown = Backbone.Model.extend({
defaults: {
'text': '',
'mode': 'markdown'
},
url: 'https://api.github.com/markdown'
});
var Issue = Backbone.Model.extend({
urlRoot: 'https://api.github.com/repos/ibrahim-islam/ibrahim-islam.github.io/issues',
parse: function (data) {
console.log('parse', data);
return data;
},
sync: function (method, model, options) {
if (method !== 'read') return Backbone.sync.apply(this, arguments);
var xhr = Backbone.ajax({
type: 'GET',
dataType: 'json',
url: _.result(model, 'url')
});
return xhr.then(function (resp1) {
var markdown = new Markdown({
text: resp1.body || 'body'
});
var data = JSON.stringify( markdown.toJSON() );
var success = options.success;
return Backbone.ajax({
url: _.result(markdown, 'url'),
dataType: 'html',
contentType: 'application/json',
type: 'POST',
data: data
}).then(function(resp2) {
var resp = _.extend({}, resp1, {
body: resp2
});
success(resp);
return resp;
});
});
}
});
var o = new Issue({
id: 1
});
o.fetch().then(function (resp) {
console.log(o.get('body'));
});