以角度思考

时间:2015-06-27 10:42:40

标签: javascript angularjs

我正在处理超过1500个HTML页面的项目。

此项目以前是在jQuery和JS代码中实现的。现在我必须使用AngularJS修改此SPA。

我已经完成了angularjs的基础知识。我们在项目中有几个互动(从一个页面移动到另一个页面)。

  1. <head ngapp="routingApp">是为整个项目配置路由的正确位置,还是可以为每个模块单独定义?
  2. 由于该项目还使用jQuery进行引导依赖,是否只包含jQuery for bootstrap?

2 个答案:

答案 0 :(得分:1)

我强烈建议您不要在一个文件中声明所有路由。这将导致真正的大文件和可维护性差。

如果你有这么大的项目,我会建议你先阅读Google's recommendation for AngularJS structure

然后,每个开发人员都有办法在一个模块和一个模块中“调整”他的工作。他更容易理解它。 此外,只需将它们排除在最终作曲和“编译”阶段之外,就可以更容易地禁用/启用某些模块。

E.g。您将拥有一个模块,用于定义可在此模块中访问的路径。

我强烈建议您使用Gulp&amp; Bower(您必须拥有Node.js)来管理依赖关系管理以及合成/编译阶段管理。 作为预告片,你有分形结构的gulp脚本编译:

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 /等。指令操纵。 你提到过bootstrap - 你的意思是Twitter Bootstrap?如果是这样,请查看AngularJS UI-Bootstrap

答案 1 :(得分:0)

您可以在模块中定义它,将其分开https://github.com/angular-ui/ui-router

1。)如果你问是否有权在1 index.html和一个角度应用中定义整个路由,是的,它是正确的地方。这是SPA的目的