`
liuqi8839
  • 浏览: 8462 次
  • 性别: Icon_minigender_1
  • 来自: 成都
最近访客 更多访客>>
社区版块
存档分类
最新评论

part-bid第一张卡《创建活动》学习记录

 
阅读更多

 

part-bid竞价活动是我们学习开始阶段的一个练习,我们从练习的过程中,理解web开发的精髓,巩固基础知识。

part-bid分为四个部分,即四张卡片,本文将记述第一张卡片的学习过程。

第一张卡片要创建三个页面:创建活动页面,活动列表页面,活动报名页面。

 


 

要求:

一.不存在已创建活动情况下:

1.在打开程序后判断一下,是否已经存在已创建的活动,如果没有,就要显示“创建活动”页面,引导用户去创建一个活动.

2.无已创建活动情况下,进入”创建活动“页面,”返回“按钮不显示
 二.存在已创建活动情况下

1.打开程序后直接进入"活动列表"页面,列表显示为已创建活动

2.“活动列表”页面按照时间顺序由新到旧排列活动,最后创建的活动显示在列表的最前

3.点击”活动列表”页面的“创建活动”按钮,进入”创建活动”页面,页面内输入框内容为空 

4.在”创建活动“页面,显示”返回“按钮

5.在“创建活动”页面,点击“返回”按钮,返回到“活动列表”页面

三.创建活动

1.在“创建活动”页面,当输入框内信息为空时,“创建”按钮为灰色的不可点击状态

2.在“创建活动”页面,点击“活动名称”下的输入框,弹出文字输入工具

3.创建的活动名称不能重复,如果名称重复,点击【创建】按钮,文本框下红字提示:“*活动名称重复”。页面不跳转

4.在“创建活动”页面,正确输入活动名称后,点击“创建”按钮活动创建成功,页面跳转到“活动报名”页面

5.在”活动报名“页面,点击“返回“按钮,跳转到”活动列表“页面,列表中显示已创建的活动

 

          首先,我们用yeoman创建工程,建一个专门保存自己工程的文件夹,然后在终端中输入:

mkdir my-project        
cd my-project    
yo webapp   
npm install -g generator-angular      
yo angular  

这样,该有的配置就搭建好了,打开RubyMine,就可以编写我们的程序了。

       首先,我们要理解什么是MVC框架,M:model,后台方法的集合,负责后台数据的处理,表示应用中的整个数据模型。V:views,前端,为用户提供可视化的界面,在浏览器中加载和渲染,并且可以在AngularJS中根据模板、控制器、模型信息修改。C :controllers,控制器是一个Javascript函数(类型/类),用来增强除了根作用域以外的作用域实例,负责后台与前端的交互,为前端提供后台接口,当用户操作前端时,controller负责处理用户的操作,通过Model下的方法实现相应功能。

       在HTML中,常常引用到CSS,CSS是一种增强渲染,美化界面的模版。我们可以直接引用网上下载下来的CSS库,也可以自己编写。在index.html中链接CSS:

 <script src="../bootstrap.js"></script>

       然后引用CSS:

 <link rel="stylesheet" href="../bootstrap.css" />

      第一张页面做好之后,可以查看一下效果,在项目文件夹中,用终端输入:

grunt serve  

这时候,浏览器会打开我们的项目,我们可以看到我们做的界面样式,以后加入功能也可以用这个方法调试。按照项目的要求做完HTML页面后,就可以添加相应的功能了,想要在页面中实现我们要的功能,我们还要了解什么是路由:AngularJS路由将不同的URL和与之相匹配的模块联系起来,比如,当我有一个URL是"localhost:9000/create_activity",配置完成之后,当我们访问/activity_list的时候,路由就帮我导向到/create_activity匹配的页面。在配置路由时我们不用考虑"localhost:9000"域名和端口部分,只需要将/create_activity和要与之匹配的模块建立联系。在route.js文件中写入:

 

.when('/create_activity',
{
   templateUrl:"./view/create_activity.html";  //将/create_activity与view文件夹下的create_activity.html页面关联起来
   controller:'CreateActivityCtrl';            //定义控制器
})

 接着我们在任意控制器里面写入:

$location.path('/create_activity');

 都可以跳转到create_activity.html这个文件被浏览器渲染后的页面,当然,一般情况下,我们要操作一个动作之后,才去实现页面的跳转,例如点击“返回”按钮,当我们建立一个<button>标签后,给<button>添加一个ng-click=""属性,在“”内写一个函数,用来实现跳转,例如<button ng-click="GotoCreateActivity">,

在控制器中添加代码:

$scope.GotoCreateActivity = function () {
    $location.path('/create_activity');
}

这样,我们点击这个<button>后,就能跳转到create_activity页面了。顺便写两个其他的属性:<button ng-show="true"  ng-disabled="false">,ng-show="true"就是显示这个按钮,如果是""内是false,则隐藏;ng-disabled=“true”的意思是此按钮不可点击,false就是可点击。

         其实页面与页面都有联系,而这些联系主要依赖于对数据的操作。所以就不得不说到url传参和localStorage数据存储。url传参用$routeParams实现。例如:要在price_result.html页面将"show"传到price_statistics.html页面。在控制器price_result.js实现跳转时,这样写:

 

$location.path('/price_statistics/'+show);
接收参数,在price_statistics.js加上$routeParams:
.controller('PriceStatisticsCtrl', function ($scope, $location,$routeParams
        $scope.show_hide=$routeParams.show_hide; 
)

而对数据的存储需要用到localStorage,主要是对localSrorage的增删查改,其中:

 

var getKey = localStorage.getItem(key) //表示得到localStorage中的数据

var parseKey = JSON.parse(localStorage.getItem(key))  //将localStorage中的数据转化成数组或字符串

localStorage[key] = JSON.stringify(name); //将name转化成localStorage的形式

name.unshift(value); //将value的值放在name数组的最开头;

name.push(value);  //将value的值放在name数组的末尾
    
有了数据之后,有时候需要把数据显示出来, 在这里要用到双向绑定 和$scope。
$scope是一个把view(一个DOM元素)连结到controller上的对象。
{{}}表达式:是类似Javascript的代码片段,通常在绑定中用到,写在双大括号中如{{表达式}}。
比如:在控制器create_activity.js中写入:
$scope.tip="活动名称重复!"  //用于创建活动,名称重复警告

在create_activity.html页面写入:  

 

{{tip}}  //页面在浏览器中就会显示出  活动名称重复! 
但有时候我们想显示一个数组,页面中就需要加点东西了,例如:
<li  ng-repeat="list in lists">
    {{list}}
</li>
 

     

  • 大小: 69.2 KB
  • 大小: 68.1 KB
  • 大小: 121.7 KB
分享到:
评论

相关推荐

    bid0-lid0-steam游戏管家_steambdth01_1.0.0.1487@1prw2r@gog.exe

    bid0-lid0-steam游戏管家_steambdth01_1.0.0.1487@1prw2r@gog.exe

    bid0-lid64-steam.game_steamzc9_2.0.0.2702.exe.file

    bid0-lid64-steam.game_steamzc9_2.0.0.2702.exe.file

    2-bid:由KPXSoft进行2次竞标

    在IT行业中,"2-bid:由KPXSoft进行2次竞标"的标题可能指的是一个项目或系统,其中KPXSoft是一个参与了两次投标过程的软件开发公司。这个项目可能涉及开发一个平台或者工具,用于处理拍卖或竞标流程,特别是强调了“2...

    马里奥matlab代码-Class-adapted-BID:一种基于即插即用的适应类盲图像去模糊方法

    一种基于即插即用方法的适应类盲图像去模糊方法。 %================================================= ===================% [1]和[2]中的适用于类的BID方法的MATLAB DEMO。 该方法基于即插即用(PnP)框架。 ...

    bid0-lid64-steam.game_steamzc_2.0.0.2242.exe

    bid0-lid64-steam.game_steamzc_2.0.0.2242.exe

    星火链BID java语言SDK项目.zip

    软件开发设计:应用软件开发、系统软件开发、移动应用开发、网站开发C++、Java、python、web、C#等语言的项目开发与学习资料 硬件与设备:单片机、EDA、proteus、RTOS、包括计算机硬件、服务器、网络设备、存储设备...

    IOS-BID-Sections:「iOS 7 开发入门」第 8 章 SearchBar 演示更新至 ios8

    在本资源中,我们主要关注的是“iOS 7 开发入门”教程的第 8 章,内容涉及如何在 iOS 应用中使用 `SearchBar`,并且这个章节已经更新以适应 iOS 8 的开发环境。`SearchBar` 是 iOS 开发中一个重要的组件,它允许用户...

    Bid Documents - Toyota Hilux Fx_pdf_

    【标题】"Bid Documents - Toyota Hilux Fx_pdf_" 暗示了这是一个与丰田Hilux FX车型相关的招标文件,格式为PDF。在IT领域,PDF(Portable Document Format)是一种广泛使用的文档格式,用于保存内容,确保在不同...

    广告自动调价算法介绍1

    【广告自动调价算法介绍1】 广告自动调价算法的核心目标是通过智能调整广告出价(Bid)以实现最大化的收益(Revenue)并控制成本(Cost)。在这个过程中,业务员通常只能调整Bid、Budget和Weight这三个参数。由于...

    Bid-Ninja: Software for Quibids & Dealdash-crx插件

    语言:English (United States) 开始赢得quibids&deaoldash!...”BID-Ninja软件有三个核心组件1 - BID-NINJA分析:如上所述,提供有关竞争对手的全面了解您的竞争对手和您试图获胜的拍卖。2 - BID-NINJABi

    crc16-CCITT.rar_ccctt.5com_ccctt3bid_ccctt9. bid_crc16 ccitt ver

    在Verilog中实现CRC-16 CCITT,通常会创建一个状态机来控制整个计算流程,并使用组合逻辑电路来实现模2除法的过程。Verilog代码会包括输入数据的寄存器、状态寄存器、以及用于存储生成多项式和当前CRC值的寄存器。...

    bid格式文件电子标书阅读器.zip

    bid格式招投标文件阅读器,可以打开浏览、管理电子招标文件,如果打不开标书文件,请按下面步骤检查:1、请查看招标文件(.bid文件)是否下载完全,请用IE下载工具下载;2、查看IE浏览器版本,如果版本低于IE8,低于IE...

    monster-bid:神经网络框架

    这个软件在这里只是作为我写过的代码的展示(前一段时间)。 它通常不会完成其任务。 基本上没有文档,除了控制台程序使用信息(如果不带参数执行, bin/ 中的任何程序都将输出使用信息)。 我没有检查该软件是否...

    load-bid:设置您的负载出价

    Create React App入门 该项目是通过引导的。 可用脚本 在项目目录中,可以运行: yarn start 在开发模式下运行应用程序。 打开在浏览器中查看它。 如果您进行编辑,则页面将重新加载。 您还将在控制台中看到任何...

    mysql 查询练习题

    foreign key (bid) references boats(bid) on delete cascade); insert into sailors(sid,sname,rating,age) values("22","dustin",7,45) ("29","brustus",1,33), ("31","lubber",8,56), ("32","andy",8,26), ("58...

    Attacks and Improvement of Quantum Sealed-Bid Auction with EPR Pairs

    量子密封拍卖是基于量子力学原理的一种多参与方安全竞标协议。它利用量子纠缠和量子密钥分发等量子通信技术,以实现竞标过程的保密性和公正性。EPR对(爱因斯坦-波多尔斯基-罗森对)是量子纠缠粒子的一种,常用于...

    AdWords-Hourly-Bid-Optimization:Google脚本和相应的Google表格模板,可按周几+小时在AdWords中优化您的出价

    带有相应Google表格模板的Google脚本,可以按一周中的某天+小时在AdWords中优化您的出价。 该脚本基于BrainLabsDigital.com上的Daniel Gilbert @ danielgilbert44的出色工作( ) 此剧本在第2集的Envoy的Digital ...

    1.docx

    例如,在解答第一大题的第二个小题时,若包含三个截图,则可分别命名为“1-2-1”、“1-2-2”、“1-2-3”,以此类推。 ### 二、Java 语言进行 HBase 应用开发 #### 创建HBase表 使用Java语言开发HBase应用程序时,...

    Bid Documents - Service Pick-up_OntheUp_tantakpins_

    标题中的“Bid Documents - Service Pick-up_OntheUp_tantakpins_”暗示这是一份关于服务接洽的投标文档,其中可能包含了与"OntheUp"和"tantakpins"两个关键词相关的服务流程或项目信息。"OntheUp"可能是项目、服务...

Global site tag (gtag.js) - Google Analytics