浏览代码

Add random controller

Lily Carpenter 10 年之前
父节点
当前提交
f3fe66d107
共有 3 个文件被更改,包括 52 次插入0 次删除
  1. 6 0
      www/index.html
  2. 12 0
      www/js/controllers/randomCtrl.js
  3. 34 0
      www/js/services/stupid.js

+ 6 - 0
www/index.html

@@ -4,6 +4,10 @@
4 4
     <link href="css/app.css" rel="stylesheet" type="text/css" media="all">
5 5
   </head>
6 6
   <body>
7
+    <div ng-controller="RandomCtrl">
8
+      <p>{{message}}</p>
9
+      <input type="submit" value="Start generation" ng-click="startGeneration()" />
10
+    </div>
7 11
     <div ng-controller="NoteCtrl">
8 12
       <h1>Notes</h1>
9 13
       <div class="delete_all">
@@ -25,6 +29,8 @@
25 29
     <script src="lib/angular/angular.js"></script>
26 30
     <script src="js/app.js"></script>
27 31
     <script src="js/services/notes.js"></script>
32
+    <script src="js/services/stupid.js"></script>
28 33
     <script src="js/controllers/noteCtrl.js"></script>
34
+    <script src="js/controllers/randomCtrl.js"></script>
29 35
   </body>
30 36
 </html>

+ 12 - 0
www/js/controllers/randomCtrl.js

@@ -0,0 +1,12 @@
1
+angular.module('bootcampApp')
2
+  .controller('RandomCtrl', function(Stupid, $scope){
3
+    function setMessage(message){
4
+      console.log(message);
5
+      $scope.message = message;
6
+    }
7
+
8
+    function startGeneration(){
9
+      Stupid.startNumberGeneration().then(setMessage, setMessage, setMessage);
10
+    }
11
+    $scope.startGeneration = startGeneration;
12
+  });

+ 34 - 0
www/js/services/stupid.js

@@ -0,0 +1,34 @@
1
+angular.module('bootcampApp')
2
+  .service('Stupid', function($rootScope, $q){
3
+    function randomIntFromInterval(min,max)
4
+    {
5
+      return Math.floor(Math.random()*(max-min+1)+min);
6
+    }
7
+
8
+    function startNumberGeneration(){
9
+      var deferred = $q.defer();
10
+      var p = deferred.promise;
11
+
12
+      $rootScope.$evalAsync(function(){
13
+        var min = 0,
14
+            max = 50000;
15
+        var magicNumber = randomIntFromInterval(min, max);
16
+        var newNumber = null;
17
+        var i = 0;
18
+
19
+        do {
20
+          newNumber = randomIntFromInterval(min, max);
21
+          if(i % 50000 == 0){
22
+            deferred.notify("Number " + newNumber + " being tried.");
23
+          }
24
+          i++;
25
+        }while(magicNumber != newNumber);
26
+
27
+        deferred.resolve("Number " + newNumber + " is the magic number.");
28
+      });
29
+
30
+      return p;
31
+    }
32
+
33
+    this.startNumberGeneration = startNumberGeneration;
34
+  });