तो के बाद से मैं अभी भी अपने टेम्पलेट के लिए अलग-अलग फ़ाइलों चाहता था और मैं उन्हें जावास्क्रिप्ट में तार में परिभाषित करने के लिए नहीं करना चाहता था मैं इस एक साथ कल रात
काट दिया यह एक तुल्यकालिक आलसी लोडर, यह सब टेम्पलेट्स लोड करता है पहले तो एंबर और मेरे कोड के बाकी,
//fake function so that every loads fine will get redefined in application.js
function initializeApp(){}
function loadTemplates(){
var arg = arguments[0],
next = Array.prototype.slice.call(arguments,1);
if(typeof arg != 'string'){
arg()
}else{
var scriptObj = document.createElement('script');
scriptObj.type = 'text/x-handlebars';
$(scriptObj).attr('data-template-name', arg.replace('.handlebars', '').substring(arg.lastIndexOf('/')+1))
$.get(arg, function(data){
scriptObj.text = data;
document.head.appendChild(scriptObj);
if(next.length > 0) loadTemplates.apply(this, next);
});
}
}
function loadScripts() {
var script = arguments[0],
scriptObj = document.createElement('script'),
next = Array.prototype.slice.call(arguments,1);
scriptObj.type = 'text/javascript';
scriptObj.src = script;
scriptObj.onload = scriptObj.onreadystatechange = (next.length > 0) ? function(){loadScripts.apply(this, next)} : function(){$(document).ready(function() {initializeApp()})};
document.head.appendChild(scriptObj);
}
function loadApp(obj){
loadTemplates.apply(this, obj.templates.concat(function(){loadScripts.apply(this,obj.scripts)}))
}
window.onload = function(){
loadApp({
templates:
[
'/javascripts/views/templates/nav-bar.handlebars',
],
scripts:
[
'https://maps.googleapis.com/maps/api/js?sensor=false&callback=initializeGoogleMaps',
'/javascripts/lib/bootstrap.js',
'/javascripts/lib/rails.js',
'/javascripts/lib/ember.js',
'/javascripts/application.js',
'/javascripts/views/nav_bar.js',
]
})
}
संपादित करें: मैं यह साफ है और यह ठीक से काम हालांकि
आह हाँ! यह वह प्रकार है जो मैं – timanema
की तरह देख रहा था एम्बर सीएलआई एक और शानदार विकल्प है। –
सिंटैक्स एम्बर के नवीनतम संस्करण (लेखन के समय v1.8) में थोड़ा बदल गया है {{view.personName}} पर। मेरा जेएसबीएन चेकआउट करें: http://emberjs.jsbin.com/soqore/2/edit – Paul