Party_Bid卡一的总结

首先,angular是yo的一个generator

如何创建一个angular的模板:

1 安装yeoman的的angular模板生成器

$ npm install -g generator -angular

2 新建一个文件夹并进入,文件夹名称即为项目名 party_bid(为了避免各种地方都加引号而抛弃空格),手动或者命令行如下: 

$ mkdir party_bid
$ cd party_bid

 3.使用 Yeoman 创建一个 AngularJS 项目:

$ yo angular

之后会有提示,问你是否选择添加一些拓展组件,因为不清楚哪些是无用的,所以全部都选了。

最后,在终端输入:

$ grunt serve

 开启了grunt的内置服务器。

 

做party-bid-1的思路:

卡一的需求如下:

首先,需要判断活动列表里是否有活动,若有活动则直接进入活动列表页面,若没有活动则进入创建活动页面。

 

创建活动的页面

这个页面的要求是:

1 在活动列表页面没有要求的情况下“返回”按钮不显示,否则,显示,并且点击“返回”回到活动列表页面;

2 有一个创建活动的文本输入框;

3 有一个创建按钮,点击创建按钮,页面跳转到“活动报名”页面;

4 当文本框内没有内容时候,创建按钮呈现不能点击的状态;

5 输入了重复的活动,点击创建按钮会不跳转页面,并且在文本框下显示红字:“对不起,您输入了重复的活动名称”。

 

活动报名页面

这个页面的要求是:

1 点击返回按钮,回到活动列表页面;

 

活动列表页面

这个页面的要求是:

1 活动列表按照时间顺序排列由新到旧排列活动;

2 点击活动列表的创建活动按钮跳转到“创建活动”页面。

 

由上边的需求排列可以看到我自己对需求的排列,并不是按事件发生的顺序逻辑排列而是按照每个页面的需求排列。我首先完成的是对每个页面html的编写,这个过程出过问题,因为用了模板的css,所以就把它的html copy过来了,里面一大堆自己不认识的代码,一直在出bug,看上去也不影响程序运行,但是,一旦自己需要debug的时候,完全找不到自己的错到底是哪一个,删完了之后控制台就很干净了,bug出在哪儿也好找得多。然后添加了它们之间的跳转。接着遇到了一个让我卡住的功能,就是:我打算以数组的方式存储已经输入的活动名称。但是我不知道要在哪里定义这个数组,因为有了“定义 初始化”的概念,那么每次调用createactivity.js都会重新定义一次,我上一次存进去的活动就不复存在了。我和叶叶叶讨论这个问题的时候,她告诉我即使activities里边没有任何值,也可以尝试取值,即用三目运算符判断JSON.parse(localStorage.getItem('activities'))是否存在,如果存在那么var一个变量等于它就ok,如果不存在,var一个变量等于空数组就可以了。接下来就进行得比较流畅了。

 

我在做卡一收获到的一点经验:

1 index.html中没有引入其他脚本的.js文件,导致其controller里边的函数不起作用;

2 两个重要的函数 storage.setItem('key',JSON.stringify(数组))  JSON.parse(参数)

var a=[];之后可以用unshift添加数据,我的理解是这个方法可以让数据后进先出,满足了功能要求;

3 把activities数组赋成了字符串,unexpected token,可以在resource里边把原来的数值删掉;

4 特别注意在index.html中,controller.js应该放在app.js后边,否则程序不会找得到它;

5 view里面不用留任何多余的东西,也就是说自己的程序自己最好明白它,否则出错都找不到为什么出错;

6 不要随意进chrome里边看js代码,因为点击一下就会设置断点;

7 为什么["a","b"]的长度是9:

 acitivities=localStorage.setItem('activities',JSON.stringify(activity_name));中JSON.stringify(activity_name)把数组转换成了字符串,而JSON.parse(localStorage.getItem('activities'))把字符串转换回了数组,这部就是解析的意思。

所以,如果不进行解析,以['活动一']为例,那么输入“活”会提醒重复,而输入“活动一”则不会。因为['活动一']是字符串而不是数组。

 

用cordova生成apk文件:

 

叶师父的流程是这样的:grunt build--->cordova create AAAA com.example.AAAA xxx--->把打包好的文件dist里的内容复制粘贴到新建的AAAA文件的www中--->cordova platform add android--->codorva build

我遇到的情况是在打包程序的时候,不能先把dist里边的内容粘贴进打包好的partybid文件夹的www文件夹下,否则会在 codorva build一步出现错误;必须在没有把dist放进去之前build一次,把dist放进去之后再build一次。

 

 

你可能感兴趣的:(part)