Я не могу использовать TypeScript AMD (RequireJs) и AngularJs.TypScript AMD и AngularJs - Не удалось создать экземпляр модуля
Я хочу использовать AMD для своего кода на машинке, а не для остальных: jquery, angular, bootstrap, ... Для сторонних js Я использую комплектацию MVC, и я хочу продолжить этот путь.
Это мой ThirdParty комплект конфигурации:
bundles.Add(new ScriptBundle("~/bundles/thirdparty").Include(
"~/Scripts/jquery-{version}.js",
"~/Scripts/bootstrap.js",
"~/Scripts/respond.js",
"~/Scripts/require.js",
"~/Scripts/angular.js",
"~/Scripts/angular-route.js"
));
Мои _Layout.cshtml что-то вроде:
<!DOCTYPE html>
<html ng-app="PafBase">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
@Scripts.Render("~/bundles/thirdparty")
<script>
require.config({
baseUrl: 'typescript/'
});
require(['module/BaseApplication']);
</script>
</head>
<body>
@RenderBody()
</body>
BaseApplication.ts это что-то вроде:
var app: ng.IModule = angular.module('PafBase', ['ngRoute']); // Breakpoint here ****
app.config(['$routeProvider', ($routeProvider) => { ... }]);
Когда запустите приложение Я получаю эту ошибку javascript:
[$injector:modulerr] Failed to instantiate module PafBase due to:
Error: [$injector:nomod] Module 'PafBase' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.
Если я продолжу выполнение, я вижу, что BaseApplication.ts выполняется после угловой ошибки.
Я думаю, что это может быть связанно с угловой проверкой объекта DOM после готовности и нашел <html ng-app="PafBase">
затем искать «PafBase» модуль и не найти его из-за requireJs не нагружает BaseApplication.ts
до того угловую проверки объекта DOM.
Как выполнить угловое сканирование дома после того, как мой код будет выполнен?
Как сказал грабят. Базовое приложение не загружается, когда приложение ng обнаружено угловым. – basarat