angularangularjs可以做什么么项目

1,207被浏览342,679分享邀请回答19033 条评论分享收藏感谢收起3612 条评论分享收藏感谢收起话题讨论:AngularJS适合开发哪种类型的项目?
论坛徽章:2
本帖最后由 colinluo 于
13:47 编辑
1.AngularJS适合开发哪种类型的项目?不适合开发哪些类型的应用?
适合于开发表单和报表类的应用程序,非常适合前端交互非常多的应用,其他应用场景可能不适用。AngularJS新版本会不再支持老的浏览器.。通常限定不能超过2000个绑定对象,这不是一个硬性限制,性能与对象绑定数量呈线性关系,绑定的对象越多,应用程序的速度会变得越慢。
2.AngularJS和jQuery的主要区别在哪呢?
AngularJS更好的支持开发单页应用,前端分层有独立的业务逻辑和可扩展的标签体系,能够改善代码的可重用性和可测试性,更加易用,开发效率更高,jQuery发展时间长,成熟度高,使用广泛,很多商业产品都支持,AngularJS还在成长,不过很快,像新版的Wijmo 5就支持它了。但也增加了使用的复杂度,削弱了对组件创建过程的可控程度。我认为Ember和AngularJS是最值得关注的新JS框架。
3.你知道国内有哪些项目用到了AngularJS?
太新了,新版本还在演进中,原来的应用不可能用它重写,新的应用大家都在尝试。
阿里云在用
4.说说您读完样章后的感受。
网上的培训和英文书逐渐增多,非常火,这本书为中文用户带来了福音,建议大家都学一学,体会一下不一样的天地,从样章看翻译的不错。
论坛徽章:350
SPA项目!!&&否则就JQUERY!
两者在层面上不同!
论坛徽章:350
关于AngularJS和JQUERY的不同,pro AngularJS 一书中有详细的讨论!
论坛徽章:0
满城尽是程序员
本帖最后由 a 于
13:40 编辑
1.AngularJS适合开发哪种类型的项目?不适合开发哪些类型的应用?
目前版本的AngularJS适合开发公司OA,网络APP和网站。
缺点:资源较少,所以不适合开发大型复杂项目,并且不适合新手入学。
2.AngularJS和jQuery的主要区别在哪呢?
jQuery和AngularJS表面功能几乎一样,但是jQuery的库比较多有优势,但是AngularJS和Jquery的定位不是很一样,AngularJS我用过1次,感觉类似于MVC但是又比MVC简单,我推荐AngularJS+jQuery开发,基本不会冲突。
3.你知道国内有哪些项目用到了AngularJS?
国内知名的项目还真不知道,但是我知道有很多小公司在用这个东西开发商业项目。
4.说说您读完样章后的感受。
这本书介绍的比较详细,我是从apjs(AngularJS中文网)最早接触这个项目的,这本书比网站上介绍的更详细,虽然英文文档和书很多但是英文水平不好只能看国内这点稀少的资料,这本中文教学书从如本到应用介绍的基本很详细配合国内这些中文教学网站资料,再次推荐一个视频,绝对不是广告我也是近期才看到的一个视频教程:
论坛徽章:0
这书的豆瓣链接:
认证徽章论坛徽章:39
1.AngularJS适合开发哪种类型的项目?不适合开发哪些类型的应用?
& && & AngularJS适合开发大型Web应用。
& && & AngularJS不适合开发企业级应用,AngularJS的处理速度慢。
2.AngularJS和jQuery的主要区别在哪呢?
& && & jQuery主要是用来操作DOM的,如果单单说jQuery的话就是这样一个功能,它的插件也比较多,大家也都各自专注一个功能,可以说jQuery体系是跟着前端页面从静态到动态崛起的一个产物,他的作用就是消除各浏览器的差异,简化和丰富DOM的API,简单易用。
& && &而AngularJS的产生不是为了再页面上实现各种特效,而是为了构建更重量级的webapp,这种app通常只有一个页面,通常拥有丰富的数据和交互,业务逻辑耦合深,跟传统的web页面还是有比较大的差异的。他们通常把数据和逻辑还有展现之类的东西做了分离,可以更方便做出复杂的单页面应用。
3.你知道国内有哪些项目用到了AngularJS?
& && &&&国内使用AngularJS的知名项目没有听说过,但是肯定有的。
4.说说您读完样章后的感受。
& && &&&样章中对于基础讲解非常到位,讲述十分清楚,涵盖 AngularJS模板,模块化,和依赖注入。任何的AngularJS web app 都是由这些基础组建而成的。即便是在最开始的、最简单的小例子中,也可以看到AngularJS模板系统的一些重要特性,一本十分棒的入门书籍,希望可以有机会拜读。
论坛徽章:0
1.AngularJS适合开发哪种类型的项目?不适合开发哪些类型的应用?
前方高能:以下引自本版书试读内容——
帮助开发者编写现代化的单页面(single-page)应用。它尤其适合编写有大量 CRUD(增删改查)操作的,具有 Ajax 风格的富客户端应用。书里说得很明确——单页面应用(SPA)和大量CRUD的富客户端应用(RIA)。
实际上SPA和RIA基本就是Mobile和Desktop应用的区别,所以等于是说涵盖一切Web应用的类型。
就我个人学习这段时间的感性认识,没有AngularJS不适合开发的应用,只有不适合用它的团队。
2.AngularJS和jQuery的主要区别在哪呢?
作为一名伪前端我两个东西只是略知皮毛,所以用Java界的东西来类比一下,不一定全对:
AngularJS就像Struts 2,jQuery则像JSP。
前者是框架,提供了全面而强大的功能,同时也有一定的学习门槛,需要掌握一些诸如拦截器、绑定、依赖注入之类的概念才能用起来,并且要用得有生产力还必须按照特定的开发模式才行,否则很可能是搬起石头砸自己的脚。
后者是库,为特定的功能需要而设计,要实现超过了库设计时针对的功能只能靠各种扩展,可以说很黄很暴力。但由于基本功能薄弱,用起来自由度又太高,时间一长各种又臭又长稀奇古怪的代码累积下来,令人头疼。
3.你知道国内有哪些项目用到了AngularJS?
感觉AngularJS也就是今年,甚至是最近几个月才在国内呈井喷状态受关注的,目前基本不知道有多少项目在用,估计不会很多。
4.说说您读完样章后的感受。
初步印象:很不错,读起来很舒服。译者应该是懂技术的,排版也非常好很忠于原书,很用心。
如果不送一本给我我就买回来看!
论坛徽章:350
itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有    
 北京市公安局海淀分局网监中心备案编号:10 广播电视节目制作经营许可证:编号(京)字第1149号&>&Angular项目
Angular项目
上传大小:30.97MB
前端采用angular做的项目,觉得还不错,对于web项目,此js很好用
综合评分:0
下载个数:
{%username%}回复{%com_username%}{%time%}\
/*点击出现回复框*/
$(".respond_btn").on("click", function (e) {
$(this).parents(".rightLi").children(".respond_box").show();
e.stopPropagation();
$(".cancel_res").on("click", function (e) {
$(this).parents(".res_b").siblings(".res_area").val("");
$(this).parents(".respond_box").hide();
e.stopPropagation();
/*删除评论*/
$(".del_comment_c").on("click", function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_invalid/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parents(".conLi").remove();
alert(data.msg);
$(".res_btn").click(function (e) {
var parentWrap = $(this).parents(".respond_box"),
q = parentWrap.find(".form1").serializeArray(),
resStr = $.trim(parentWrap.find(".res_area_r").val());
console.log(q);
//var res_area_r = $.trim($(".res_area_r").val());
if (resStr == '') {
$(".res_text").css({color: "red"});
$.post("/index.php/comment/do_comment_reply/", q,
function (data) {
if (data.succ == 1) {
var $target,
evt = e || window.
$target = $(evt.target || evt.srcElement);
var $dd = $target.parents('dd');
var $wrapReply = $dd.find('.respond_box');
console.log($wrapReply);
//var mess = $(".res_area_r").val();
var mess = resS
var str = str.replace(/{%header%}/g, data.header)
.replace(/{%href%}/g, 'http://' + window.location.host + '/user/' + data.username)
.replace(/{%username%}/g, data.username)
.replace(/{%com_username%}/g, data.com_username)
.replace(/{%time%}/g, data.time)
.replace(/{%id%}/g, data.id)
.replace(/{%mess%}/g, mess);
$dd.after(str);
$(".respond_box").hide();
$(".res_area_r").val("");
$(".res_area").val("");
$wrapReply.hide();
alert(data.msg);
}, "json");
/*删除回复*/
$(".rightLi").on("click", '.del_comment_r', function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_comment_del/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parent().parent().parent().parent().parent().remove();
$(e.target).parents('.res_list').remove()
alert(data.msg);
//填充回复
function KeyP(v) {
var parentWrap = $(v).parents(".respond_box");
parentWrap.find(".res_area_r").val($.trim(parentWrap.find(".res_area").val()));
评论共有0条
做个有钱人呵呵呵
综合评分:
积分/C币:5
综合评分:
积分/C币:5
综合评分:
积分/C币:3
综合评分:
积分/C币:2
综合评分:
积分/C币:3
念念不忘10132
综合评分:
积分/C币:3
综合评分:
积分/C币:5
综合评分:
积分/C币:3
xugang666666
综合评分:
积分/C币:20
song_yunwei
综合评分:
积分/C币:8
VIP会员动态
CSDN下载频道资源及相关规则调整公告V11.10
下载频道用户反馈专区
下载频道积分规则调整V1710.18
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
资源所需积分/C币
当前拥有积分
当前拥有C币
输入下载码
为了良好体验,不建议使用迅雷下载
Angular项目
会员到期时间:
剩余下载个数:
剩余积分:0
为了良好体验,不建议使用迅雷下载
积分不足!
资源所需积分/C币
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
无法举报自己的资源
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可返还被扣除的积分
被举报人:
举报的资源分:
请选择类型
资源无法下载 ( 404页面、下载失败、资源本身问题)
资源无法使用 (文件损坏、内容缺失、题文不符)
侵犯版权资源 (侵犯公司或个人版权)
虚假资源 (恶意欺诈、刷分资源)
含色情、危害国家安全内容
含广告、木马病毒资源
*详细原因:
Angular项目使用 gulp 构建 Angular 项目
引言随着 Web "前后端分离" 架构的日渐普及,Angular.js 因为其 MVVM 模式使其受到广大前端开发者的青睐。然而,在前台项目开发过程中,依赖包的管理、JavaScript / SASS / Less 的编译和压缩、图片的压缩、版本更新,这些零碎繁多的任务阻碍着项目的构建和部署。所以,前端项目的自动化构建也成为了开发中的必备环节。什么是 gulp?gulp 是一个构建工具,可以通过它自动执行网站开发过程中的公共任务,比如编译 SASS/Less,编译压缩混淆 JavaScript,,合并编译模板和版本控制等。因为 gulp 是基于 Node.js 构建的,所以 gulp 源文件和开发者自己定义的 gulpfile 都被写进 JavaScript 里,前端开发者可以用自己熟悉的语言来编写 gulp 任务。gulp 本身并不能完成这么多种任务,不过它可以借助 npm 丰富的插件库。开发者可以在 npm 中搜索 gulpplugin 找到想要的插件。例如本文中将要提到的 gulp-cssmin, gulp-jshint, gulp-concat、gulp-inject 等等。为什么选择 gulp?其实现有的基于 Node.js 的构建工具有很多,比如 Bower,Yeoman,grunt 等。而且自 2013 年 grunt v0.4.0 发布以后,grunt 已经改变了前端的开发方式。那么为什么我们要选 gulp?gulp 最大的特点是所有的任务都是以 Node.js Stream 的形式处理,构建流程可以由 Stream 之间的 pipe 来定义,省去了把中间文件写到磁盘再读取的过程,而且任务都是默认并行,速度比 grunt 快很多,配置也感觉更省心。易于使用:采用代码优于配置策略,gulp 让简单的事情继续简单,复杂的任务变得可管理。高效:gulp 基于 Node.js 流 Unix 管道连接的方式,不需要往磁盘写中间文件,可以更快地完成构建。高质量:gulp 每个 task 只完成一个任务,提高 task 的重用度。易于学习:gulp 核心 API 约 5 个,开发者能在很短的时间内学会,之后就可以通过管道流来组合自己需要的 task。安装 gulp首先,gulp 需要全局安装。注意一点,gulp 的安装依赖于 npm,所以要在环境中装好 Node.js。安装好 Node.js 以后运行以下命令:清单 1. 全局安装 gulp$ npm install –g gulp其次,在项目目录中安装 gulp 为本地模块清单 2. 本地安装 gulp$ npm install –-save-dev gulp最后,安装项目中依赖的 gulp plugin 模块,如 gulp-cssmin, gulp-jshint清单 3. 安装 gulp 插件$ npm install –-save-dev gulp-cssmin gulp-jshint使用 gulp首先,在项目根目录中创建一个 gulpfile.js 文件。gulpfile.js 是所有 gulp 的任务配置和启动文件,以下是一个最简易的 gulpfile.js。清单 4. gulpfile.jsvar gulp = require('gulp');
var cssmin = require('gulp-cssmin');
gulp.task('css-task', function() {
return gulp.src('style/main.css')
.pipe(cssmin())
.pipe(gulp.dest('./build'));
gulp.task('default', function() {
gulp.run(css-task);
});其次,开发者通过调用 gulp 命令执行默认的名为 default 的任务,或者执行 gulp &taskname& 来执行指定任务。在上面这段代码中,gulpfile.js 加载了 gulp 和 gulp-cssmin 两个模块之后,执行了开发者指定的 task。Task 的定义有两个参数,第一个为 task 名称 (css-task),第二个是任务的调用函数。在任务函数中,使用 gulp 模块的 src 方法,指定所要处理的文件,然后使用 pipe 方法,将上一步的输出转为当前的输入,进行链式处理。最后使用 gulp 模块的 dest 方法,将上一步的输出写入本地文件。在这个例子中,可以清楚的看到 gulp 使用了 Node.js 的 stream 概念:src 方法读入文件产生数据流,dest 方法将数据流写入文件,中间是一些中间步骤,每一步都对数据流进行一些处理。使用 gulp 自动化构建 Angular 项目示例项目介绍文中使用的例子是一个基于 Angular.js 实现的网页版 Todo App,在 Github 中下载。项目代码结构如下清单 5. 项目目录结构|--bower_components
|--node_modules
|--static_pages
   |--controllers
   |--services
   |--app.js
// app 启动配置
   |--main.css
   |--note.html
|--gulpfile.js
// gulp 配置
|--bower.json
// bower 配置
|--package.json
// node module 配置
|--index.html
// app 启动文件架构上使用如下 libsAngular:JavaScript 架构Bootstrap:样式控件库bower:管理项目依赖包npm:管理项目运行的依赖工具gulp:自动化构建工具设计 build process因为项目中使用到的 source code 有 JavaScript,,CSS,HTML 以及依赖 bower 导入的依赖包,所以我们将构建分成以下几个 task:jshint:编译 JavaScriptclean:清空 build 目录template:合并并打包所有 HTML 模板文件生成 template.jsjs:压缩、混淆 JavaScript,并生成 sourcemapdeployCSS:合并压缩 CSSdevIndex:组织 develop 时的 index.htmldeployIndex:组织 deploy 时的 index.html,区别于第 6 个 task,这个 index.html 中 link 的将是压缩过的 CSS 和 JavaScript接下来,我们分条介绍上面的 task。设定全局变量 paths,记录 source code 的路径清单 6. 项目 pathsvar paths = {
js: ['./js/app.js', 'js/**/*.js'],
css: ['./style/**/*.css'],
templates: './js/templates.js',
buildjs: ['./build/**/*.js'],
buildcss: ['./build/**/*.css']
};task 1: jshint这个 task 主要用来编译 JavaScript 代码。依赖插件 glup-jshint,需要在配置之前将这个插件安装好,之后如下配置:清单 7. jshintvar jshint = require('gulp-jshint');
gulp.task('jshint', function() {
gulp.src(paths.js)
.pipe(jshint())
.pipe(jshint.reporter('default'));
});task 2: clean我们可以看到项目目录中有个 build 文件夹,这个目录是用来存放所有 build 之后的 CSS/JS/HTML 文件。所以 clean 的任务是在每次 build 之前清理上一次 build 的 outputs,也就是清空 build 文件夹。依赖 del 模块:清单 8. cleanvar del = require('del');
gulp.task('clean', function() {
// You can use multiple globbing patterns as you would with `gulp.src`
return del(['./build', paths.templates]);
});task 3: template开发过程中一般按照功能模块将页面分成不同的 HTML 片段模板,每个片段对应一个相应 controller,客户端浏览器访问网页时会分别请求下载 HTML 文件。当业务逻辑较为复杂时,项目中将会存在很多的 HTML 小文件,此时下载的请求数目也会很大,影响 performance。我们的想法是使用插件 gulp-angular-templatecache,将这些 HTML 模版片段合并成一个文件。这个插件会将所有模板文件合并成一个 template.js, 并将其作为项目中的一个 module 而存在。清单 9. templatevar templateCache = require('gulp-angular-templatecache');
gulp.task('template', function () {
return gulp.src('./view/**/*.html')
.pipe(templateCache({module: 'myApp'}))
.pipe(gulp.dest('./js'))
});task 4: jsJavaScript 的 build 分成两种情况:DEV 模式:在开发环境中,为了方便 debug,JavaScript 通常不做压缩和混淆;PROD 模式:上生产环境时,JavaScript 必须并合压缩、混淆并成一个文件,同时需要去除所有的 log 输出语句。JavaScript 混淆使用了插件 gulp-uglify;合并压缩使用了插件 gulp-concat,以及 gulp-sourcemaps;去除 log 语句使用了插件 gulp-strip-debug。清单 10. gulp 任务 jsgulp.task('js', function() {
if (deployEnvironment == Environment.DEV) { // DEV
return gulp.src(paths.js)
.pipe(concat('all.js'))
.pipe(gulp.dest('./build'));
} else { // PROD
return gulp.src(paths.js)
.pipe(sourcemaps.init())
.pipe(stripDebug())
.pipe(uglify())
.pipe(concat('all.min.js'))
.pipe(sourcemaps.write())
.pipe(gulp.dest('./build'));
});task 5: css文中示例的样式表使用的是原生的 CSS 文件,所以使用 cssmin 完成了所有 CSS 文件的合并及压缩。清单 11. gulp 任务 cssvar cssmin = require('gulp-cssmin');
gulp.task('deployCSS', function() {
return gulp.src(paths.css)
.pipe(cssmin())
.pipe(concat('all.css'))
.pipe(gulp.dest('./build'));
});task 6: devIndex这个 task 主要是管理开发使用的 index.html 文件中对静态资源的引用。因为我们使用了 bower 来管理项目的依赖包,比如 jQuery 和 Angular,我们使用下面这种方式来导入项目:清单 12. 引用静态资源&script src="bower_components/jquery/dist/jquery.js"&&/script&
&script src="bower_components/angular/angular.js"&&/script&可以看出,当我们需要引用的静态资源变得很多时,这个 list 也将会变得很长很不好管理。这时可以使用插件 gulp-inject。1. 使用 bower 命令安装项目依赖包时添加--save-dev 参数,使配置写入 bower.json 文件。比如安装 angular 使用如下命令:清单 13. 安装本地 angular 模块$ bower install –-save-dev angular安装成功以后 bower.json 文件的 dependencies 中会自动生成 angular 的依赖关系。清单 14.bower.json"dependencies": {
"angular": "^1.5.7"
},2. 在 index.html 中使用 inject 标签管理需要插入依赖包的位置。整理 index.html 成如下格式:清单 15. 为 gulp-inject 准备的 index.html 模板&!DOCTYPE html&
&html lang="en" data-ng-app="myApp"&
&meta charset="utf-8"&
&title&Angular UI Router&/title&
&!-- bower:css --&
&!-- endinject --&
&!-- inject:css --&
&!-- endinject --&
&a ui-sref="note"&go note&/a&
&div ui-view&&/div&
&!-- bower:js --&
&!-- endinject --&
&!-- inject:js --&
&!-- endinject --&
&/html&3. 配置 inject 的 task清单 16.gulp 任务 injectgulp.task('devIndex', ['clean', 'jshint'], function () {
// It's not necessary to read the files (will speed up things), we're only after their paths:
return gulp.src('./index.html')
.pipe(inject(gulp.src(paths.js, {read: false}), {relative: true}))
.pipe(inject(gulp.src(paths.css, {read: false}), {relative: true}))
.pipe(inject(gulp.src(bowerFiles(), {read: false}), {name: 'bower', relative: true}))
.pipe(gulp.dest('./'));
});4. 执行命令 gulp devIndex,我们可以得到注入以后的 index.html 如下:清单 17.Inject 后生成的 index.html&!DOCTYPE html&
&html lang="en" data-ng-app="myApp"&
&meta charset="utf-8"&
&title&Angular UI Router&/title&
&!-- bower:css --&
&link rel="stylesheet" href="bower_components/normalize-css/normalize.css"&
&link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.min.css"&
&link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap-theme.css"&
&!-- endinject --&
&!-- inject:css --&
&link rel="stylesheet" href="style/main.css"&
&!-- endinject --&
&a ui-sref="note"&go note&/a&
&div ui-view&&/div&
&!-- bower:js --&
&script src="bower_components/angular/angular.js"&&/script&
&!-- endinject --&
&!-- inject:js --&
&script src="js/app.js"&&/script&
&script src="js/controllers/note.js"&&/script&
&script src="js/services/note.js"&&/script&
&!-- endinject --&
&/html&task 7: deployIndexdeployIndex 主要是用来组织部署到测试或者生产环境时需要的 index.html。和 devIndex 的区别在于页面中引用的是合并压缩混淆后的静态资源,也就是项目目录 build 中的文件。此处同样也是使用的 gulp-inject,我们直接看一下 task。清单 18. gulp 任务 deployIndexgulp.task('deployIndex', ['clean', 'jshint', 'template', 'deployJS', 'deployCSS'], function () {
// It's not necessary to read the files (will speed up things), we're only after their paths:
return gulp.src('./index.html')
.pipe(inject(gulp.src(paths.buildjs, {read: false}), {relative: true}))
.pipe(inject(gulp.src(paths.buildcss, {read: false}), {relative: true}))
.pipe(inject(gulp.src(bowerFiles(), {read: false}), {name: 'bower', relative: true}))
.pipe(gulp.dest('./'));
});上面这段代码在配置 deployIndex 时使用了三个参数,其中第二个参数表示当前 task 所依赖的 task list。调用 gulp deployIndex,生成的 index.html 和上一个 task 类似,不过 CSS 和 JS 的引用会修改如下:清单 19. Inject 之后生成的 index.html&!-- inject:css --&
&link rel="stylesheet" href="build/all.css"&
&!-- endinject --&
&!-- inject:js --&
&script src="build/all.min.js"&&/script&
&!-- endinject --&结束语随着"前后端分离"架构的日渐普及,前台的自动化构建将越来越被重视。本文着重介绍了 gulp 的使用方式,以及 Web 前台开发过程中涉及的一些自动化构建切入点,希望读者可以通过本文了解 Web 前台的自动化构建相关知识。
相关主题参考 ,查看 gulp 最新 API 和 Document。参考 ,查看插件 main-bower-files。参考 ,了解插件 gulp-inject。参考 ,了解 source map。访问 developerWorks ,了解关于信息管理的更多信息,获取技术文档、how-to 文章、培训、下载、产品信息以及其他资源。
添加或订阅评论,请先或。
有新评论时提醒我
static.content.url=http://www.ibm.com/developerworks/js/artrating/SITE_ID=10Zone=Web development, Open sourceArticleID=1036561ArticleTitle=使用 gulp 构建 Angular 项目publish-date=博主最新文章
博主热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)

我要回帖

更多关于 angular可以做什么 的文章

 

随机推荐