2017-06-21 54 views
1

我摆弄角度和试图了解何时应该做一个新的控制器或不。我试图在角度上完成的是#1随机化列表,当用户点击按钮。我可以自动随机化,但不知道如果在ng-click上,如果这应该需要一个新的范围控制器。我试图做的第二件事是复制该列表,但当合作伙伴被点击时 - 它将它们与列表中的一个随机字母相匹配。这包括在列表中追加另一封信到另一封信。我想知道的是,如果它不是 - 多余的字母会发生什么?有什么建议么。我认为角提出了一个更清晰的方式来解决问题,然后jQuery。angularjs随机化和匹配

var myApp = angular.module('myApp', []); 
 
angular.module('myApp', []) 
 

 
.controller('myCtrl', ['$scope', function($scope) { 
 
    $scope.list = ['a', 'b', 'c', 'd', 'e', 'f', 'g']; 
 
    
 
    $scope.random = function() { 
 
    return 0.5 - Math.random(); 
 
    }; 
 
    $scope.matchme = function() { 
 
    alert("this"); 
 
    }; 
 

 

 
}]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 

 
<body ng-app="myApp"> 
 

 
<div ng-controller="myCtrl"> 
 
    <p ng-repeat="i in list">{{i}}</p> 
 
    <p ng-repeat="x in list2">{{i}}</p> 
 
    <button ng-click="random()">randomize</button> 
 
<button ng-click="matchme()">partner</button> 
 

 
</div>

回答

0

我什么时候应该做一个新的控制器

从技术上讲,你可以添加你想要的任何数量的控制器。 最佳实践是使用更清晰的代码的1视图= 1控制器。

随机列表,当用户点击该按钮

你的NG-点击的方法是正确的。你只需要在阵列上实现一个randomizing algorythm

NG-点击[...]需要一个新的控制器

复制该列表

在磁盘阵列上的matchme功能使用angular.copy你想复制。

合作伙伴时点击 - 它在 列表中的随机字母匹配他们[...]

从这里开始我不明白你的需要。

无论哪种方式,对于任何新项目/测试,都使用最新的角度版本。 1.2.23是从2014年起。