Мышление по-угловому

0

Я работаю над проектом с более чем 1500 HTML-страницами.

Этот проект был ранее реализован в jQuery и JS-коде. Теперь мне нужно обновить этот SPA, используя AngularJS.

Я прошел через основы angularjs. У нас есть несколько взаимодействий в наших проектах (Перемещение с одной страницы на другую).

  1. Является ли <head ngapp="routingApp"> правильным местом для настройки маршрутизации для всего проекта или я могу определить его отдельно для каждого модуля?
  2. Поскольку проект также использует jQuery для зависимостей bootstrap, имеет ли смысл включать jQuery для начальной загрузки?
Теги:

2 ответа

1

Я бы сильно отговорил вас от объявления всей вашей маршрутизации в одном файле. Это приведет к действительно большому файлу и плохой ремонтопригодности.

Если у вас есть такой большой проект, я советую вам сначала прочитать рекомендацию 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

0

Вы можете определенно отделить его в модулях, посмотрите https://github.com/angular-ui/ui-router.

1.) Если вы спрашиваете, имеет ли право определять целую маршрутизацию внутри 1 index.html и одно угловое приложение, да, это правильно. Цель SPA

  • 0
    Таким образом, index.html будет правильным местом для определения всех маршрутов независимо от количества маршрутов в проекте (так как у нас 1500 страниц)?
  • 1
    Никакой index.html не является подходящим местом для хранения всего вашего SPA, но не очень хорошо иметь маршруты. Js и 20 000 строк кода для определения 1500 страниц. Но в angular вы можете разделить все приложение на функцию / модули, и должны быть определены маршруты для соответствующего модуля / функции, затем вы зарегистрируете этот модуль в своем приложении app.module ('app', ['app.dashboard']) и app.module ('app.dashboard', []). config (маршруты). Тогда вы будете создавать целое приложение, как лего.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню