Я работаю над проектом с более чем 1500 HTML-страницами.
Этот проект был ранее реализован в jQuery и JS-коде. Теперь мне нужно обновить этот SPA, используя AngularJS.
Я прошел через основы angularjs. У нас есть несколько взаимодействий в наших проектах (Перемещение с одной страницы на другую).
<head ngapp="routingApp">
правильным местом для настройки маршрутизации для всего проекта или я могу определить его отдельно для каждого модуля?Я бы сильно отговорил вас от объявления всей вашей маршрутизации в одном файле. Это приведет к действительно большому файлу и плохой ремонтопригодности.
Если у вас есть такой большой проект, я советую вам сначала прочитать рекомендацию Google для структуры AngularJS.
Тогда у каждого разработчика будет возможность "охватить" свою работу в рамках одного модуля, и ему было бы легче понять это. Кроме того, было бы намного легче отключить/включить некоторые модули, исключив их из окончательной компоновки и фазы "компиляции".
Например, у вас будет модуль, который определяет маршруты, которые могут быть достигнуты в этом модуле.
Я настоятельно рекомендую использовать Gulp & Bower (у вас должен быть Node.js), чтобы управлять вашим управлением зависимостями, а также управлять фазой составления/компиляции. В качестве тизера здесь вы создаете компиляцию gulp scripts для фрактальной структуры:
gulp.task('scripts', function () {
var depJS = dependencies.bower.js.map(function (dep) { return config.bowerLib + dep; });
depJS = depJS.concat(dependencies.node.js.map(function (dep) { return config.nodeLib + dep; }));
var srcJS = ['app/modules/app.js', 'app/modules/**/*.module.js', 'app/modules/**/*.js'];
var libPipe = gulp.src(depJS)
.pipe(plumber())
.pipe(concat('lib.min.js'))
.pipe(size({title: 'js-before lib'}))
.pipe(gulpif(config.minimize.perform, uglify(config.minimize.js)))
.pipe(size({title: ' js-after lib'}))
.pipe(gulp.dest(config.scriptsOutDir));
var pipe = gulp.src(srcJS)
.pipe(plumber())
.pipe(concat('all.min.js'))
.pipe(size({title: 'js-before all'}))
.pipe(gulpif(config.minimize.perform, uglify(config.minimize.js)))
.pipe(size({title: ' js-after all'}))
.pipe(gulp.dest(config.scriptsOutDir));
});
Второй вопрос - у AngularJS есть jQLite внутри него. Когда jQuery доступен, используется реализация jQuery. (обратите внимание: используйте jQuery/jqlite только в директивах). Это зависит от того, насколько сильно библиотека jQuery используется во всем вашем проекте и какие методы используются. Может ли он быть заменен jqlite (ограниченным jQuery) или вы можете просто переписать все специфичные jQuery DOM/etc. манипулирование директивами. Вы упомянули bootstrap - вы имели в виду Twitter Bootstrap? Если это так, посмотрите на UL-Bootstrap от AngularJS
Вы можете определенно отделить его в модулях, посмотрите https://github.com/angular-ui/ui-router.
1.) Если вы спрашиваете, имеет ли право определять целую маршрутизацию внутри 1 index.html и одно угловое приложение, да, это правильно. Цель SPA