party_bid是一个移动设备上的应用,实现了在移动设备上的竞价获得。其中任何一台安装有这个App的移动设备,我们暂且把它叫做主办方,主办方通过该App创建一个可自定义名称的活动,活动创建完毕后,参与者可通过自己的手机发送短信来参与该活动,活动报名结束后,主办方可以在该活动下,发起多个竞价,活动报名者通过发送特定格式的短信,报出自己的竞价,竞价最低且不重复的报名者即可竞价成功!
本项目是基于Google的前端框架Angularjs来实现。html页面则使用twitter的样式库bootstrap来实现!
卡片一需要实现的功能:
1.完成相应页面的设计;
2.页面之间的相互跳转;
3.创建新的活动;
4.有无活动情况下页面的显示情况。
一.index.html文件的说明
index.html文件故名思议,还是和普通的web页面一样,叫主页,就是我们打开根目录下的默认页面。
在这个页面中,我们加载了工程需要的样式CSS和必要的javascript文件
例如该工程需要使用的CSS文件
<!-- build:css(.tmp) styles/main.css -->
<link rel="stylesheet" href="bower_components/bootstrap/docs/assets/css/bootstrap-responsive.css" />
<link href="styles/font-awesome.min.css" rel="stylesheet" media="screen">
<link href="styles/android.css" rel="stylesheet" media="screen">
以及该工程所需要的js文件
<script src="scripts/controllers/ActivityCreateControler.js"></script>
特别需要说明的是该页面中的页面标签ng-view
<div ng-view="">
</div>
当浏览器发现需要打开其它页面时,浏览器就会将其它页面的内容显示到ng-view标签对应的div盒子中,就相当于我们始终打开的是index,只是ng-view这个标签中的内容却是相对变化的
二.app.js路由
app.js即route.js路由脚本,通过该js文件,浏览器就会根据我们的地址栏打开相应的界面。
.when(url, {
templateUrl: '页面模板',
controller: '控制器'
})
<span style="font-family: Arial, Helvetica, sans-serif;">
</span>
<span style="font-family: Arial, Helvetica, sans-serif;">在本工程中的路由 </span>
angular
.module('partyBidApp', [
'ngAnimate',
'ngCookies',
'ngResource',
'ngRoute',
'ngSanitize',
'ngTouch'
])
.config(function ($routeProvider) {
$routeProvider
.when('/', {
templateUrl: 'views/ActivityItem.html',
controller: 'ItemControl'
})
.when('/create', {
templateUrl: 'views/ActivityCreate.html',
controller: 'CreateControl'
})
.when('/item', {
templateUrl: 'views/ActivityItem.html',
controller: 'ItemControl'
})
.otherwise({
redirectTo: '/'
});
angularjs会读取到我们的地址栏内容,然后和每一个when后面第一个参数对比,相同的时候,就会跳转到templateUrl的键值页面。同时加载该页面的控制文件。理论上每一个html页面对应一个控制文件,当都不满足的时候,就执行otherwise。
3.数据的存储。
在每一种编程语言中都需要存储数据,很多语言都会将数据存到数据库,或者是其他的文件中。在angular中,我们利用locastorage,将数据存入浏览器的Local Storage中
常用的localstorage操作,如下:
localStorage.a = 3;//设置a为"3"
localStorage["a"] = "sfsf";//设置a为"sfsf",覆盖上面的值
localStorage.setItem("b","isaac");//设置b为"isaac"
var a1 = localStorage["a"];//获取a的值
var a2 = localStorage.a;//获取a的值
var b = localStorage.getItem("b");//获取b的值
localStorage.removeItem("c");//清除c的值
由于localstorage中存的数据都是以字符或字符串的方式存储的,所以在对数组,对象存储的过程中,我们还要用到JSON方法,如下:
JSON.stringify(), 将value(Object,Array,String,Number...)序列化为JSON字符串
JSON.parse(), 将JSON数据解析为js原生值
4.卡片一
4.1页面之间的相互跳转
location.path("url")#url为路由app.js中when后面的第一个参数,需要跳转到哪一个,就将该页面的url写入path中。
4.2活动的新增和存储
function Activity (activity_name,signup,bid){
this.name = activity_name;
this.signup= signup || "unstart";
this.bid=bid || "unstart";
}
Activity.prototype.save =function(){
var all_activity=Activity.get_all_activity();
all_activity.push(this);
this.add_activity(this);
this.add_activity_total(all_activity);
};
创建一个活动model,该活动的属性有名字和竞价状态以及报名状态。使用实例方法将活动存储到localstorage中
4.3数据的绑定
angularjs的数据绑定由“{{}}”和“表达式”组成,这个绑定告诉AngularJS需要运算其中的表达式并将结果插入DOM中,DOM可以随着运算结果的改变而实时更新,这里经常用到的一个元素是$scope,scope是作用域,它限定了数据的访问范围只能在特定的html和controller中。
<input type="text" ng-model="activity_name" placeholder="输入活动名称" class="input-full"/><br/><br/>
<h3 style="color:red">{{new_activity_name}}</h3>
代码中的new_activity_name就是一个双向绑定的数据,在controller中我们可以在$scope.
var name = $scope.new_activity_name#将new_activity_name的值赋给name变量
<pre name="code" class="html">$scope.new_activity_name = name#将name的值赋给new_activity_name,并可在html页面中显示出来
4.4 ng-repeat
Angularjs自带一组内置的官方指令,其中ng-repeat就是实现遍历迭代的指令,其中ng代表在angularjs的作用域内,也即代表了angularjs。
在第一张卡中,我们需要使用AngularJS迭代器来实现活动列表。
<li ng-repeat="activity in activity_names track by $index" ng-click="choose_activity(activity)" class="clearfix btn-default">
<h3 class="{{activity.status}}">{{activity.name}}</h3><i class="icon-angle-right"></i>
</li>
4.5 ng-disabled
<button ng-show="true" ng-disabled="create_button_enable" ng-click="back_to_create_activity()" class="btn btn-primary header-right">创建活动</button>
当create_button_enable的值为true时,该按钮就是不能够点击的!false时就是可以点击的
分享到:
相关推荐
trello_lead_time是一个 Ruby gem,用于计算 Trello 列表中卡片的前置时间、排队时间和循环时间。 排队时间- Trello 卡等待启动所花费的时间。 周期时间- Trello 卡在处理过程中花费的时间。 前置时间- Trello ...
**Laravel 开发与 Trello 集成详解** 在 Laravel 框架中,开发者经常需要集成外部服务,如 Trello,以实现项目管理、任务分配等需求。`laravel-trello` 是一个专门为 Laravel 设计的 Trello API 包装器,它允许...
在Trello:trade_mark:卡中的图像附件上绘制带标签的注释。 简单又安全。 在http://husky.io上观看演示 此扩展功能增强了Trello:trade_mark:卡的功能,并允许您在图像附件中添加带标签的注释。 带注释的图像将保存在...
trello_ticket_id Chrome插件在trello中显示票号。安装复制存储库去这里:Chrome://扩展/ 单击复选框“开发人员模式” 单击“加载已解压的扩展程序”按钮选择一个包含存储库的文件夹使用转到 trello ... 利润!
trello_task_manager:ReactJs + Spring Boot + Postgres上的任务管理器
Simply-trello 并不打算提供完整的 Trello API 功能集 - 而是提供一种简单的、数据驱动的方式来将卡片放到 Trello 上或向现有卡片添加评论。 所以... 我需要能够轻松: 创建/更新板和板的列表 将卡片添加到图板...
然而,为了进一步提升Trello的使用体验和工作效率,开发者们推出了一系列的扩展应用,其中之一便是"MenuTab for Trello_v1.6"。这款应用旨在为Trello用户提供更加便捷的操作菜单和增强的功能集。 MenuTab for ...
Boards是Trello的核心功能之一,代表项目或任务集合。通过点击Trello首页,用户可以查看自己创建的所有Boards,以及被邀请加入的Boards。管理员有权新建Boards,只需点击“New Boards”,输入名称后确认创建。此外,...
设置以下环境变量,可以在命令行中使用相应的选项进行设置HIPCHAT_TOKEN --hipchat-token :来自 Hipchat 活动的 API 令牌TRELLO_APP_KEY --trello-app-key : Trello 密钥TRELLO_USER_TOKEN --trello-token : ...
如何使用 在config/environment.js ENV['trelloApplicationKey']应用程序密钥设置为ENV['trelloApplicationKey'] 通过ember serve启动服务器 访问站点localhost:4200 授权 输入您的组织名称,然后按按钮!
特雷洛 :trade_mark: 在点上 :index_pointing_up: ( 一个Google Chrome扩展程序,用于根据点数来衡量Trello卡的复杂度/难度。 通过在方括号中的卡标题开头添加分数(低1分),您可以轻松衡量任务的燃尽并评估团队...
томойконсольныйклиентдляTrello! СкачайтеилисклонируйтерепозиторийЗапуститеtrello.pyчерезконсоль,以及一个其他麻省理工学院...
OA办公项目管理团队协作工具Trello app ui界面设计 .sketch素材下载 OA办公管理、sketch、团队管理APP
通过阅读《Web开发敏捷之道》这本书,读者可以深入理解敏捷开发的精髓,学习如何在Web开发项目中有效实施敏捷方法,以适应快速变化的市场需求,提高开发效率和客户满意度。高清的PDF版本带有书签,方便读者随时查阅...
trellodog Trello工具,用于将图形发送到数据并生成活动报告 验证 trellodog配置了2个环境变量 $ export TRELLO_APP_KEY= < trello..../bin/stats activity h8dlORO8 -d 1 -t " America/New_York " ./bin/stats activi
**敏捷开发框架开发手册**是指导开发者在软件开发过程中运用敏捷方法的一个综合指南。这份手册涵盖了多个关键领域,旨在帮助团队高效地实现敏捷开发流程,提高软件开发的灵活性和响应能力。 1. **部署和管理** ...
【敏捷开发】 敏捷开发是一种以人为核心、迭代、逐步交付的软件开发方法论。它强调灵活应对变化,鼓励团队间的协作和沟通,以提高软件质量和满足客户需求。敏捷开发的核心价值观包括个体和互动高于流程和工具,可...
此外,敏捷开发工具如Jira、Trello、Confluence等,提供了项目管理、任务分配、进度追踪和团队协作等功能,有助于敏捷实践的落地执行。这些工具使得敏捷团队能够更高效地规划Sprint、跟踪工作进度,并确保所有团队...
Trello 平铺 Laravel 仪表板的磁贴,显示来自 Trello 的任务。安装通过作曲家$ composer require tkaratug/laravel-dashboard-trello-tile用法在dashboard配置文件中,您必须在tiles键中添加此配置。 list_id应该是...