2017-02-08 16 views
-1

В настоящее время я создаю приложение, в котором вы можете делать аккуратные торговые карты, как мое введение в AngularJS. В настоящее время у меня есть набор статистических данных, которые люди могут выбрать, чтобы построить их характер, но я хотел бы сделать функцию более случайной/автоматизированной.Угловой JS, получить случайные значения массива при нажатии

Как создать функцию для случайного перехода и присвоить одно из значений в моем массиве?

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 это сработало. –