`

Party_bid 第一张卡总结

阅读更多

刚刚完成了Party_bid的第一张卡,第一次接触RubyMine工具,使用angularjs进行web开发,确实学到了不少知识,收获颇多,下面是我对第一张卡的总结:

一、工程项目的环境配置

1、安装yeoman

yeoman的目标是通过Grunt(一个用于开发任务自动化的命令行工具)和Bower(一个HTML、CSS、Javascript和图片等前端资源的包管理器)的包装为开发者创建一个易用的工作流。

Yeoman主要有三部分组成:yo(脚手架工具,用于构建一个新的项目框架)、grunt(项目的构建工具)、bower(包管理器,不再需要手动去下载scripts了)。这三个工具是分别独立开发的,但是需要配合使用,来实现我们高效的工作流模式。

1)安装yo,前提是已经安装了npm和node.js

npm install -g yo

 2)安装grunt-cli和bower

你以前安装了grunt,你需要首先卸载grunt

sudo npm uninstall -g grunt

 然后安装grunt-cli 和bower

sudo npm install -g grunt-cli bower

3)基本脚手架

在创建一个脚手架的web应用程序时,你需要安装web应用的生成器

安装generator-webapp  

sudo npm install -g generator-webapp

 generator-前缀的模块表明它是一种工程模版.这是默认的Web应用程序生成器,脚手架中包括:HTML5 Boilerplate, jQuery, Modernizr, and Bootstrap.

2、创建工程

1)创建自己的工程根目录:

mkdir Projects
cd Projects/
mkdir yo-demo
//进入到自己创建的目录里:
cd yo-demo/

2)运行:yo webapp,下载工程模板 (**可以先不装)

webapp是yo自带的工程模版,带有:html5 Boilerplate、jquery、Modernizr、Bootstrap、RequireJS等框架

如果报权限问题,就要切换到root用户下,或者提高用户的权限

3)我们还提供一些框架发生器,可用于脚手架的一个项目和横向视图,模型,控制器等

例如:脚手架出一个 AngularJS app(这是我们本次项目需要用的项目用例)

与往常一样,采用了新的生成器之前,您必须从npm里安装

npm install -g generator-angular

 在此之后,在你创建的应用程序的目录里运行:

yo angular

 

可能遇到问题:

 

(1)遇到问题:会报 access denidied ../.config/configstore/update-notifier-yo.yml

解决方法:

sudo chown -R $USER  ../.config/configstore/

提高用户权限,然后再重新运行一下,如果还报权限问题,就给用户赋予相应的文件夹(可能是node的问题)权限(要根据自己的实际情况)。

sudo chown -R $USER /usr/local/lib/node_modules/

再重新装一下yo :

npm install yo -g

 修改了对node的文件夹权限以后还要修改一下node环境变量:

echo "export NODE_PATH=$NODE_PATH:/usr/local/lib/node_modules" >> ~/.bashrc && source ~/.bashrc

 再重新装一下:

npm install yo -g

 (2)有时npm问题,

要清空一下npm缓存:

npn catch clear
npm install jitsu -g
//npm重装一下
npm install

 基本上项目样例就已经创建好了,使用命令生成运行效果

grunt --force
grunt serve

二、第一张卡要点总结

本项目充分利用anjularjs的特性,使得web应用更智能更灵活。第一张卡涉及到的主要知识点如下:

1、路由的配置

angularjs路由是实现将不同的URL与响应该URL的Handler相匹配的功能模块,我们需要使用.when函数把该URL与Handler相匹配。

.when(url, {
   templateUrl: '页面模板',
   controller: '控制器'
   })

 例如我有view/activity_creat.html,为其设置的控制器为activity_createCtrl,那么这个路由配置为;

 .when('/activity_create',{
        templateUrl: 'views/activity_create.html',
        controller: 'activity_createCtrl'
       })

在进行页面跳转时,就是要找到相应的url,这里使用

$location.path('/activity_create');

2、绑定

1)angularjs的数据绑定由“{{}}”和“表达式”组成,这个绑定告诉AngularJS需要运算其中的表达式并将结果插入DOM中,DOM可以随着运算结果的改变而实时更新,这里经常用到的一个元素是$scope,scope是作用域,它限定了数据的访问范围只能在特定的html和controller中。例如,在html中定义变量begin_end

 <button class="btn btn-primary btn-lg btn-block btn-4" ng-click="start()" ng-show="show">{{begain_end}}</button>

 在相应的控制器js中将使用$scope.begin_end进行赋值

$scope.begin_end='开始';

2)angularjs的双向绑定主要体现在标签跟模型之间

 <input class="inputheight" ng-model="activity_name" type="search">
 <button class=" btn btn-primary btn-lg btn-block" ng-click="create_Activity()" ng-disabled="!activity_name">

 这里在input元素和activity_name模型之间建立了一个双向绑定,activity_name会被作为button中ng-disabled的输入。

3、ng-repeat

Angularjs自带一组内置的官方指令,其中ng-repeat就是实现遍历迭代的指令,其中ng代表在angularjs的作用域内,也即代表了angularjs。

在第一张卡中,我们需要使用AngularJS迭代器来实现活动列表。

<li ng-repeat="activity in activities" ng-click="activity_register(activity.name)">
<h4>{{activity.name}}</h4>
</li>

activities是自定义的用来存储活动名称的数组,activity是每一个活动对象,ng-repeat="activity in activities"的意思是将activities数组的对象依次取出赋给activity,然后在页面上使用数据绑定{{activity.name}}将名字属性以列表的形式显示在html中。

4、数据存储

AngularJS里的数据存储使用本地存储localStorage。

var messages=JSON.parse(localStorage.getItem('messages')) || []; //取出数组messages里的东西并赋值给messages
localStorage.setItem('activity', activity.name);   

 存储字符串类型数据,将activity.name存储在名为activity的名下当用这个数据时localStorage.activity即可调用此数据,这种存发只能存储一个数据,下次赋值会覆盖前面的数据。

如果是对象数组,存储时还要转换为字符串数组,存储数组:

localStorage.setItem("activities",JSON.stringify(activities));   

 参考网址:http://zhaomingyuan7.iteye.com/blog/2048495

5、ng-disabled

返回按钮的显示与否:如果为真时,不显示按钮,如果为假时,显示按钮,这里功能的实现也要与模型绑定相结合使用。

 <button class="btn btn-primary btn-lg btn-block btn-4" ng-click="return()" ng-show="show">返回</button>

 可以在控制器里对show进行赋值使用。

6、运行时出现的问题:

grunt --force、grunt serve不能使用,报错:

Running "wiredep:app" (wiredep) task cannot find where you keep your Bower packages.

 

解决方法:重新安装一下bower,使用命令:

bower install

 

7、安装到手机上

1) android应用需要用到cordova来对程序进行封装。

        首先要确保自己已经安装有:git,nodejs,android-sdk

        接着只需要执行以下几步:

安装cordova

sudo npm install -g cordova

 如果已经安装yeoman就不需要再安装了

sudo npm install -g yeoman   
sudo npm install -g generator-angular

 然后是创建文件夹(上一步已经有了就可以不用再创建了)

mkdir my-workspace
cd my-workspace   
cordova create demo com.company.demo "DemoApp"
cd demo
cordova platform add android
mkdir webapp && cd webapp
yo angular webapp
sudo npm install

 先将你的工程复制粘贴到webapp文件夹下再执行,记住删除文件夹下原先的内容,然后再执行:

grunt --force 

 

grunt server

 

rm -rf ../www/*   //删除www文件夹下的内容
cp -rf dist/* ../www/   //复制dist文件夹下的内容到www文件夹下
cd ..
cordova build    //生成apk文件

  此时,apk的文件可以在platforms/android/ant-build/中找到*debug.apk,可以复制到手机上安装调试,看看手机上运行的效果。也可以在连上手机设备后运行

adb install platforms/android/ant-build/*debug.apk

 2)遇到问题

安装到手机上后css样式加载不进去,原因是dist里缺少styles文件夹及其内容,可以将自己APP里的styles样式复制进去,也可以重新下载自己原来的工程,重新生成。

 

0
0
分享到:
评论

相关推荐

    uid_score_bid.dat

    数据格式 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

    标题中的"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

    3. 除法:如果当前CRC寄存器的最右边一位为1,就与生成多项式G(x)进行异或操作,相当于模2除法。 4. 重复步骤2和3,直到所有数据位都被处理。 5. 结果:最后CRC寄存器的值就是CRC-16校验和。 在Verilog中实现CRC-16...

    EURUSD_1 Min_Bid_2003.05.04_2019.02.02.zip

    欧美1分钟历史数据,2003年5月到2019年2月,MT4EA回测好用。

    mc_bid

    "mc_bid"通常在IT行业中指的是“Multi-Channel Bid”,这是一种广告投放策略,特别是在数字营销领域,用于优化广告在多个渠道上的出价。这个概念主要应用于程序化广告(Programmatic Advertising),通过自动化的...

    Repaso_Clases_Objetos_call_aplly_bid_22_02_2021

    标题 "Repaso_Clases_Objetos_call_aplly_bid_22_02_2021" 暗示这是一个关于回顾类与对象、`call` 和 `apply` 方法以及可能涉及到的 JavaScript 语言特性的教程或复习资料。描述部分的信息较为简单,与标题相同,...

    去噪代码matlab-PGBL_BID:PGBL_BID的Matlab代码

    去噪代码 matlab

    backup_1000821v1001400000.zip

    1. **verify.json**:这是一个JSON(JavaScript Object Notation)文件,通常用来存储配置信息、验证数据或者元数据。JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在这个上下文中...

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

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

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

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

    Bid Documents - Toyota Hilux Fx_pdf_

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

    bid_shift_reg.rar_plus

    标题“bid_shift_reg.rar_plus”暗示我们关注的焦点是一个与数字电路设计相关的项目,特别是使用VHDL(Very High-Speed Integrated Circuit Hardware Description Language)编写的双向移位寄存器。在电子工程领域,...

    bid0-lid64-steam.game_steamzc_2.0.0.2242.exe

    bid0-lid64-steam.game_steamzc_2.0.0.2242.exe

    ocds_bid_extension:允许出价统计信息和详细的出价信息被表示

    出价统计信息和详细信息 作为签约过程一部分而...bids.details数组用于提供一个或多个Bid对象,每个对象代表收到的唯一出价。 bids.statistics数组用于表示有关投标和投标者数量的关键统计信息。 数组中的每个条目都

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

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

    Bid Documents - Service Pick-up_OntheUp_tantakpins_

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

    matlab 电力系统潮流计算程序 9节点改进算法算例

    电力系统潮流计算是电力工程中的一个关键问题,用于分析电网在特定运行条件下的电压、功率分布和线路潮流。MATLAB作为一种强大的数值计算工具,被广泛应用于电力系统的建模与仿真。"matlab 电力系统潮流计算程序 9...

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

    [1]和[2]中的适用于类的BID方法的MATLAB DEMO。 该方法基于即插即用(PnP)框架。 MAIN BID函数:Main_BID_PnP.m 演示脚本:Demo_BID_PnP.m%========================================== ========================...

    Framework Manager使用手册.doc

    Cognos Framework Manager 是一款强大的元数据设计工具,用于构建数据模型,供 Cognos Analytics(之前称为 Cognos Business Intelligence)使用。本手册将详细阐述如何使用 Framework Manager 创建项目、连接数据源...

    blind-auction

    首先,我们需要创建一个`Bid`类,它代表每个竞标的出价,包括竞标者的名字和出价金额。接着,我们需要一个`Auctioneer`类,它负责管理拍卖过程,收集投标、隐藏投标信息以及最终决定获胜者。 ```python class Bid: ...

Global site tag (gtag.js) - Google Analytics