angularjs入门案例 新玩具-中午吃神马
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了angularjs入门案例 新玩具-中午吃神马,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5420字,纯文字阅读大概需要8分钟。
内容图文
angularjs 是一个用来开发单页webAPP的mvv框架,由Google 开发,如果不知道angularjs 的可以先google 下
按照angularjs 的开发一般顺序先搭建好需要做的视图,然后准备数据,最后绑定事件处理业务逻辑,操作DOM事件用户和程序的交互。
1、开始搭建界面,使用bootstrap作为UI框架,可以快速搭建清爽的界面效果,顺便引入 angular.js jquery.js 和我们需要写的app.js 作为业务逻辑
1 <! doctype html > 2 < html ng-app ="lottery" > 3 < head > 4 < meta charset ="utf-8" > 5 < title >中午吃什嘛!</title> 6<meta name="fragment" content="!"> 7<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 8<meta name="description" content=""> 9<meta name="viewport" content="width=device-width">1011<link rel="stylesheet" type="text/css" href="/js/sandbox/bootstrap-2.2.1/css/bootstrap.min.css">1213<script type="text/javascript" src="http://sandbox.runjs.cn/uploads/rs/250/osagsqji/angular.js"></script>14<script type="text/javascript" src="/js/sandbox/jquery/jquery-1.7.2.min.js"></script>15<script type="text/javascript" src="http://sandbox.runjs.cn/uploads/rs/250/osagsqji/app.js"></script>1617<style type="text/css">18 td span{display:inline-block;width:20px;height:20px;line-height:20px;text-align:center;border:1px solid #ccc;cursor: pointer;}19 .red{color:red;}20 .view{height:300px;border:1px solid #ccc;}21 .buffer{background: url(http://dev.haowa.com/img/ajax_loader.gif) center center no-repeat;}22 .ground{width:400px;}23 .ground .one{width:100px;height:100px;float:left;margin:5px;border:1px solid #ccc;text-align:center;text-align:center;line-height:100px;}24 .ground .one.active{background:#357ebd;border:1px solid #A2FF9C;color:#fff;}25 .result{color:#f60;}26</style>2728</head>29<body buffer>30<p></p>31<div class="container" ng-controller="main">32<div class="row-fluid">33<div class="span6">34<h3 class="result">获取结果:{{result}}</h3>35<h5>添加选项</h5>36<form ng-submit="add()">37<input type="text" ng-model="value" required size="30" placeholder="名称">38<input class="btn" type="submit" value="添加到预选列表">39</form>40<!-- 列表 -->41<ul>42<li ng-repeat="one in data">43<span>{{one.id}}</span>44<input value="{{one.name}}" style="border:1px solid #fff" size="30">45<a ng-click="del(one.id)">删除</a>46</li>47</ul>48</div>49<div class="span6">5051<button class="btn" ng-click="start()" ngDisabled="is_start">开始计算</button>52<p></p>53<div class="ground">54<div ng-repeat="one in data" id="{{one.id}}" class="one" ng-class="{‘active‘:one.status}">{{one.name}}</div>55</div>56</div>57</div>58</div>59</body>60</html>
开始写app.js
"use strict" var app = angular.module("lottery",[]); app.controller(‘main‘, [‘$scope‘,‘$timeout‘, function($scope,$timeout){ $scope.data = [ {id:1,name:"火锅",status:0}, {id:2,name:"中餐",status:0}, {id:3,name:"泰国菜",status:0}, {id:4,name:"韩国料理",status:0} ]; $scope.is_start = false; $scope.result = "还没有开始!"; /** * 添加 * @author ln */ $scope.add = function () { var last_id = getLastId(); $scope.data.push({id:last_id,name:$scope.value,status:0}) } /** * 删除 * @author ln */ $scope.del = function (id) { angular.forEach($scope.data,function(value, key) { if (id == value.id) { $scope.data.splice(key,1); }; }) } $scope.start = function() { if ($scope.is_start) alert("已经开始了!!"); $scope.is_start = true; var queue = []; //滚动队列 var circle = 3; var select_key = 0; //中奖的KEY //随机 select_key = Math.floor(Math.random()*$scope.data.length); //滚动 var next = function(key) { $scope.data[key].status = true; if ((key-1)>=0) $scope.data[key-1].status = false; if (key==0) $scope.data[$scope.data.length-1].status = false; var timer = $timeout(function() { // //结束 if (circle < =0 && select_key == key) { alert("搞定,答案是:"+$scope.data[key].name); $scope.result = $scope.data[key].name; $scope.is_start = false; return; }; // //减少一圈 if ($scope.data.length == key+1){ circle--; } if ($scope.data[key+1]) { next(key+1) }else{ next(0) } },100); } next(0); } /******私有方法 ***********/ function getLastId() { var id = 0; angular.forEach($scope.data,function(value, key) { if (id < value.id) id = value.id }) return ++id; } }]);
这里数据
$scope.data = [
{id:1,name:"火锅",status:0},
{id:2,name:"中餐",status:0},
{id:3,name:"泰国菜",status:0},
{id:4,name:"韩国料理",status:0}
];
作为默认数据,根据 add del 方法实现增加、删除功能
最后关键的开始的滚动抽奖逻辑由 start 方法实现
1 $scope.start = function() { 2if ($scope.is_start) 3 alert("已经开始了!!"); 4 5 $scope.is_start = true; 6var queue = []; //滚动队列 7var circle = 3; 8var select_key = 0; //中奖的KEY 910//随机11 select_key = Math.floor(Math.random()*$scope.data.length); 1213//滚动14var next = function(key) { 15 $scope.data[key].status = true; 16if ((key-1)>=0) 17 $scope.data[key-1].status = false; 18if (key==0) 19 $scope.data[$scope.data.length-1].status = false; 2021var timer = $timeout(function() { 22// //结束23if (circle <=0 && select_key == key) { 24 alert("搞定,答案是:"+$scope.data[key].name); 25 $scope.result = $scope.data[key].name; 26 $scope.is_start = false; 2728return; 29 }; 30// //减少一圈31if ($scope.data.length == key+1){ 32 circle--; 33 } 34if ($scope.data[key+1]) { 35 next(key+1) 36 }else{ 37 next(0) 38 } 39 },100); 40 } 41 next(0); 42 }
runJs 代码演示
http://runjs.cn/detail/x7wntsvq
原文:http://www.cnblogs.com/linksgo2011/p/3879550.html
内容总结
以上是互联网集市为您收集整理的angularjs入门案例 新玩具-中午吃神马全部内容,希望文章能够帮你解决angularjs入门案例 新玩具-中午吃神马所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。