2017-02-08 38 views
-1

私は現在、AngularJSへの紹介としてきちんとしたトレーディングカードを作ることができるアプリを開発しています。現在、キャラクターを構築するために選択できる統計情報が用意されていますが、その機能をよりランダム/自動化したいと考えています。Angular JS、クリック時のランダムな配列値を取得

ランダムに通過して配列の値の1つを割り当てる関数を作成するにはどうすればよいですか?

preview of app

現在、私は統計をこのように設定するには、ボタンを吐き出しています:

<p ng-repeat="power in cardPowers"> 
     <a href="" ng-click="cardStats(power.attack,power.defense,power.cost)"> 
     {{power.name | uppercase}} 
     </a> 
</p> 

そして、私の統計情報のアレイと、それらを設定する機能:

$scope.cardPowers = [ 
{ 
    name: "balanced-low", 
    attack: 800, 
    defense: 800, 
    cost: 2 
}, 
{ 
    name: "balanced-medium", 
    attack: 1500, 
    defense: 1500, 
    cost: 4 
}, 
{ 
    name: "balanced-high", 
    attack: 2500, 
    defense: 2500, 
    cost: 7 
}, 
{ 
    name: "high-offense", 
    attack: 2500, 
    defense: 1000, 
    cost: 5 
}, 
{ 
    name: "base-offense", 
    attack: 1500, 
    defense: 1000, 
    cost: 3 
}, 
{ 
    name: "base-defense", 
    attack: 1000, 
    defense: 1500, 
    cost: 3 
}, 
{ 
    name: "high-offense", 
    attack: 2200, 
    defense: 1000, 
    cost: 5 
}, 
{ 
    name: "high-defense", 
    attack: 1000, 
    defense: 2500, 
    cost: 4 
}, 
{ 
    name: "high-offense-defense", 
    attack: 2200, 
    defense: 2500, 
    cost: 6 
} 
]; 

$scope.cardStats = function(attack, defense, cost){ 
$scope.attack = attack; 
$scope.defense = defense; 
$scope.cost = cost; 
}; 
+0

残念ながら、あなたがここで何を求めているのかは分かりません。あなたのコードが壊れているように見えることはありませんが、あなたが働いていることを説明している機能を示すコードはここにはないようです。 "私はできるようになりたい..."という質問は本当に問題ではありません。 – Claies

+0

@Claies私はそれがAngularJSでこれを行うにはどうすればよいかと思います。これは適切な質問ではない場合、私はこれを削除することができます。 –

+0

'0'と' cardPowers.length - 1'の間に乱数を生成するだけです。 – Ankh

答えて

1

を使用し、次の関数$scope.cardPowers配列からランダムな値を取得する関数です。

function getRandomCardPower(){  
    return $scope.cardPowers[Math.floor(Math.random() * $scope.cardPowers.length)]; 
} 
+0

ありがとう@Ankhとdaan.desmedtこれはうまくいきました。 –

関連する問題