這不是真正的「角度的方式」來做到這一點。
你不應該在做任何DOM操作,甚至在控制器中引用DOM。
相反,您要做的是操縱影響您視圖的模型數據。在你的情況,我會隨機數據的陣列,而不是隨機的DOM元素本身:
function MyCtrl($scope) {
$scope.answers = [ /*... some data here ... */];
$scope.randomizeAnswers = function() {
fisherYates($scope.answers);
};
//a good randomization function
//(see: http://stackoverflow.com/questions/2450954/how-to-randomize-a-javascript-array)
function fisherYates (myArray) {
var i = myArray.length, j, tempi, tempj;
if (i == 0) return false;
while (--i) {
j = Math.floor(Math.random() * (i + 1));
tempi = myArray[i];
tempj = myArray[j];
myArray[i] = tempj;
myArray[j] = tempi;
}
}
}
使用$上可能是不必要在這裏,好像你只是想後陣隨機化被加載?這真的要取決於你的方法在做什麼。
我不知道你的conjugate()
方法的作用......但假定它做某種異步工作來返回數據,你可能必須使用$q
並從該方法返回一個承諾。然後,您可以將您的隨機電話放入一個.then()
回調函數中,該函數將在數據加載時觸發。
什麼是「隨機」?它會返回一個函數嗎? – 2013-02-21 17:15:45
它隨機化元素 – Tules 2013-02-21 17:18:26