在初步学习完完angular js之后,开始尝试做party_bid的第一张卡片。这个项目用到了敏捷开发的故事卡,用到了angular js,用到了yeoman和rubymine,这些对我来是一个全新的领域,特此总结一下。
party_bid来源于百老汇,是一个竞价游戏。游戏分为四个部分,创建活动——活动报名——组织竞价——竞价分析,最终从竞价者中选出竞价最低且不重复作为获胜者。
1.首先建立一个新的文件夹。我的文件夹名为party_bid,进入文件夹。在终端输入下面的代码。
mkdir party_bid //创建文件夹party_bid cd party_bid //进入文件夹
2.用yeoman在party_bid文件夹下面生成一个新的工程。接着上面的代码,输入下面的代码。我的工程名字叫party_bid。建议在网速比较好的地方生成,生成速度会比较快,也不容易出现error。
yo party_bid //生成工程文件
提醒 Would you like to use Sass (with Compass)? (Y/n) n
提醒 Would you like to include Bootstrap? (Y/n) y
其余按Enter键。
3.工程文件生成后,在相应文件夹下用终端输入下面代码,启动服务器。至此,准备活动全部完成,可以正式开始编写程序。
grunt serve
4.首先先要把要引用的所有css文件引入index中。
<link href="css/bootstrap.min.css" rel="stylesheet" media="screen"> <link href="css/font-awesome.min.css" rel="stylesheet" media="screen"> <link href="css/android.css" rel="stylesheet" media="screen">
href是指定的路径,是css文件的位置;rel是relation。
其次还要引入相对应使用的全部js文件。如下:
<script src="bower_components/jquery/dist/jquery.js"></script> <script src="bower_components/angular/angular.js"></script> <script src="scripts/route.js"></script> <script src="scripts/controllers/main.js"></script
5.接下来就是要配置路由器实现页面和控制器之间的联系。部分代码如下:
$routeProvider .when('/', { templateUrl: 'views/main.html', controller: 'MainCtrl' }) .when('/create_activity', { templateUrl: 'views/create_activity.html', controller: 'CreateActivityCtrl' })我是通过在main.html页面判断是否活动列表中是否存在活动而进行页面的跳转是跳转到activity_list还是create_activity,但是main页面并没有展示内容。
6.需求要求点击按钮实现页面的跳转。我使用的方式的ng-click,在对应的控制器中实现方法。举个列子:从活动报名的页面点击返回按钮跳转到活动列表中。
<button class="btn btn-primary header-left" ng-click="go_list()">返回</button>
$scope.go_list = function () { $location.path('/activity_list') }
7. 在活动列表页面中要求活动排序按照活动创建的顺序输出。我在存储数据时存成数组的形式,这里只需要将数组reverse之后遍历输出就可以了。这里也使用了ng-repeat方法。在localStorage中的数据传到name中,list对name进行遍历后把结果输出。
<li ng-repeat='list in name'> {{list}} //输出遍历结果下面是在控制器中的代码。首先判断localStorage中是否有活动,如果没有就将数据传到name,对name进行reverse。但是这部分代码感觉还不够好,还需要进一步的修改。
if(localStorage.length!=0) { console.log(localStorage.length); var name = JSON.parse(localStorage['activity_name']); $scope.name = name.reverse(); } else{ }
8.在create_activity页面中要实现存入活动名称,判断活动名称是否重复以及返回按钮在活动列表中没有活动是不显示的三个功能。在存入活动时使用的方法是JSON.stringify方法,因为这个方法可以直接解析对象。在判断活动名称是否重复时使用的循环,在按钮显示的功能使用的是ng-show的方法。这部分的代码感觉也是不够干净利落,还是需要继续修改完善的。
<h3>活动名称</h3> <p><input type="text" class="input" ng-model="activity_name"></p> <button class="btn btn-default btn-lg btn-block" ng-disabled='!activity_name' ng-click="go_sign_up(activity_name)">创建</button> <p>{{tips}}</p>
if (localStorage.length != 0) { var storedNames = []; storedNames = JSON.parse(localStorage['activity_name']); var i = 0; for (var n = 0; n<storedNames.length; n++) { if (storedNames[n]==temp_act_name) { $scope.tips = "活动名称重复"; i = 1; break; } else { } } if(i==0){ storedNames.push(temp_act_name); //将活动名称存入数组name localStorage['activity_name'] = JSON.stringify(storedNames); //将name数组存入localStorage中,key是activity_name $location.path('/activity_sign_up'); } else{ } } else { var name = []; name.push(temp_act_name); localStorage['activity_name'] = JSON.stringify(name); $location.path('/activity_sign_up'); } }
至此,party_bid的第一张卡片的功能已经大致实现。但是里面还是有很多内容值得我细细思考,认真记录的。其实还是有一个疑问可不可以使用setItem和getItem的方法实现数据的存储和读取的呢?感觉上还是可以的,但是这两种方法哪一种更好呢?希望在下一篇博客中我可以得到结论。
相关推荐
数据格式 uid_score_bid 如 dingdanglbh,4.0 ,25862578 Luna-cat,5.0 ,25862578 aiyung,5.0 ,25862578
标题中的"case9_bid.rar_PSO_PSO power_PSO 潮流_case9_pso power flow"揭示了这个压缩包文件包含的是一个关于电力系统潮流计算的案例,使用了粒子群优化(PSO, Particle Swarm Optimization)算法。PSO是一种基于...
标题中的"crc16-CCITT.rar_ccctt.5com_ccctt3bid_ccctt9._bid_crc16 ccitt ver"可能是指一个包含CRC-16 CCITT实现相关资料的压缩文件,其中包含了各种文档、源代码或测试向量。"ccctt.5com"、"ccctt3bid"、"ccctt9._...
该招标项目前端设计源码采用JavaScript编写,包含280个文件,涵盖177个JavaScript文件、26个CSS文件、24个HTML文件、22个Java文件以及少量地图、JSON、图像、XML...整个项目旨在打造一个功能完善、界面美观的招标平台。
欧美1分钟历史数据,2003年5月到2019年2月,MT4EA回测好用。
"mc_bid"通常在IT行业中指的是“Multi-Channel Bid”,这是一种广告投放策略,特别是在数字营销领域,用于优化广告在多个渠道上的出价。这个概念主要应用于程序化广告(Programmatic Advertising),通过自动化的...
标题 "Repaso_Clases_Objetos_call_aplly_bid_22_02_2021" 暗示这是一个关于回顾类与对象、`call` 和 `apply` 方法以及可能涉及到的 JavaScript 语言特性的教程或复习资料。描述部分的信息较为简单,与标题相同,...
去噪代码 matlab
bid0-lid64-steam.game_steamzc9_2.0.0.2702.exe.file
总结起来,这个“backup_1000821v1001400000.zip”压缩包可能包含了一个陌陌应用或系统的备份数据,其中`verify.json`和`config.json`文件提供了备份验证和应用配置信息,而`verify.sign`和`verify.signature`则保证...
bid0-lid0-steam游戏管家_steambdth01_1.0.0.1487@1prw2r@gog.exe
标题“bid_shift_reg.rar_plus”暗示我们关注的焦点是一个与数字电路设计相关的项目,特别是使用VHDL(Very High-Speed Integrated Circuit Hardware Description Language)编写的双向移位寄存器。在电子工程领域,...
【标题】"Bid Documents - Toyota Hilux Fx_pdf_" 暗示了这是一个与丰田Hilux FX车型相关的招标文件,格式为PDF。在IT领域,PDF(Portable Document Format)是一种广泛使用的文档格式,用于保存内容,确保在不同...
bid0-lid64-steam.game_steamzc_2.0.0.2242.exe
出价统计信息和详细信息 作为签约过程一部分而...bids.details数组用于提供一个或多个Bid对象,每个对象代表收到的唯一出价。 bids.statistics数组用于表示有关投标和投标者数量的关键统计信息。 数组中的每个条目都
标题中的“Bid Documents - Service Pick-up_OntheUp_tantakpins_”暗示这是一份关于服务接洽的投标文档,其中可能包含了与"OntheUp"和"tantakpins"两个关键词相关的服务流程或项目信息。"OntheUp"可能是项目、服务...
bid格式招投标文件阅读器,可以打开浏览、管理电子招标文件,如果打不开标书文件,请按下面步骤检查:1、请查看招标文件(.bid文件)是否下载完全,请用IE下载工具下载;2、查看IE浏览器版本,如果版本低于IE8,低于IE...
演示脚本:Demo_BID_PnP.m%========================================== ========================% 接触: Marina Ljubenovic-葡萄牙里斯本电信研究所- Mario AT Figueiredo-葡萄牙里斯本电信学院-%============...
在提供的文件中,`quadratic_bid_ninebus.m`和`case9_bid.m`可能是两个主要的MATLAB源代码文件,它们可能包含了潮流计算的实现以及特定的优化算法,如牛顿-拉弗森法或者快速分解法。 `quadratic_bid_ninebus.m`可能...
在这个MODULE中,我们首先定义了一个Type-pool vrm.PROCESS ON VALUE-REQUEST,然后使用FIELD gs_bid-yk_bookid MODULE detail_bookid来将下拉框的值与 gs_bid-yk_bookid字段绑定。 二、Type-pool的使用 在ABAP中...