2015-01-20 4 views
0

Я получаю ошибку 404 при загрузке шаблона. Я пытаюсь загрузить HTML-файл с помощью router.I сделать router.js файл и firstpage.html .I нужно вывести соперничают из "firstpage.html"Как удалить ошибку 404 во время загрузки заманчиво?

GET http://run.plnkr.co/firstpage.html 404 (Not Found) 
    underscore.js:1235 Uncaught TypeError: Cannot read property 'replace' of undefined 
    (index):38 ContactManager has started! 

вот мой код http://plnkr.co/edit/JiagaB5ztfqmxQnwgcwR?p=preview

<!DOCTYPE html> 
<html> 

    <head> 

     <script src="jquery.js"></script> 
      <script src="json2.js"></script> 
      <script src="underscore.js"></script> 
      <script src="backbone.js"></script> 
      <script src="backbone.marionette.js"></script> 

     <script src="common.js"></script> 
     <script src="router.js"></script> 
     <script src="view.js"></script> 
    </head> 

<body> 
<div> 
    <div id="header"> 

    </div> 
    <div id="contend"> 


    </div> 
    <div id="fotter"> 

    </div> 
</div> 
<script> 
    $(document).ready(function(){ 
     var ContactManager = new Marionette.Application(); 
     ContactManager.addRegions({ 
      mainRegion:"#contend" 
     }) 

     ContactManager.on("start", function(){ 
      console.log("ContactManager has started!"); 
      var routers = new R({app: ContactManager}) 

     }); 

     ContactManager.start(); 

    }) 

</script> 
</body> 

</html> 
+0

do u попробовать это местное не в plnk? –

+0

Я стараюсь, чтобы местные не смогли загрузить .. у вас есть идентификатор, который я пришлю код. Пожалуйста, предоставьте свой идентификатор. Я отправлю свой код. Загрузите мой простой html – user944513

ответ

0

В common.js вы вызываете следующие

render.tmpl_cache[tmpl_name] = _.template(tmpl_string); 

Однако переменная tmpl_string га s значение undefined при переходе на _.template(), что вызывает исключение. Вы можете увидеть это делает

var tmpl_string; 
_.template(tmpl_string); // Uncaught TypeError: Cannot read property 'replace' of undefined 

Эта проблема возникает потому, что пытаются присвоить значение в tmpl_string внутри обратного вызова $.ajax() успеха - но это асинхронная функция - и render.tmpl_cache[tmpl_name] = _.template(tmpl_string) строка будет выполнена, пока мы ждем ответ Ajax.

Чтобы решить эту проблему, вы можете использовать jQuery promises, чтобы переменная передавалась только функции _.template() после того, как вы будете готовы.

+0

, что такое решение .. я могу отправить свой код вам ? так что я могу загрузить html? –

+0

Вы можете отправить код? пожалуйста, поделитесь некоторым кодом –