2017-01-26 6 views
0

Использование angularjs маршрутизации, иногда я получаюAngularjs шаблон 404 не найден

template/home.html Failed to load resource: 
        the server responded with a status of 404 (Not Found) 

Но я объявил шаблон/home.html инлайн

<script type="text/ng-template" id="template/home.html"> 
    ...template stuff... 
</script> 

Неожиданно я не получаю 404 раз раз, но иногда ,

Я уже прочитал this stackoverflow, где они помнят это правило https://docs.angularjs.org/api/ng/service/ $ templateCache

Примечание: тег скрипт, содержащий шаблон не должен быть включен в заголовке документа, но должен быть потомком $ rootElement (IE, элемент с атрибутом ng-app), иначе шаблон будет проигнорирован.

Я объявил мое angularjs приложение без нг-приложения, но через бутстрапе

angular.bootstrap(document, ['myapp']); 

Так что мой $ RootElement является документом. Действительно, я не получаю 404 ошибки каждый раз. Есть некоторые условия гонки: иногда $ routerProvider устанавливается до $ templateCache с моим встроенным шаблоном.

Я использую requirejs. Это может быть причиной?

Любые помощь?

ответ

0

Я думаю, вы можете случайно поставить свой скрипт ng-template вне тега, где вы определяете основное угловое приложение.

<body ng-app="myApp"> 

    // Your Template shuld stay here 

    <script type="text/ng-template" id="template/home.html"> 
    ...template stuff... 
    </script> 
</body> 
+0

Как я только что написал в моем вопросе, я объявил мое angularjs приложение без нг-приложения, но через загрузочный angular.bootstrap (документ, [ «MYAPP»]); –

+0

жаль, что я пропустил эту часть. вы пытались использовать ng-app, возможно, это сужает источник проблемы. –

+0

Мне нужно больше контролировать процесс инициализации, поэтому я использую ручной бутстрап. Я не могу добавить ng-app, потому что angularjs говорит: «Вы не должны использовать директиву ng-app при ручной загрузке приложения», –