2017-01-04 110 views
0

我想動態地指定ng模型名稱,以便可以通過輸入'$ scope.numbers.no1','$ scope.numbers在控制器中訪問ng-model名稱.no2'等。 到目前爲止,我想這個代碼沒有結果:帶有前綴的動態類名稱

<div ng-repeat="row in numbersArray" class="numbersRow"> 
    <div ng-repeat="num in row" class="number" ng-model="numbers['no' + num]">{{num}}</div>   
</div> 
在我的控制器

$scope.numbers = {}; 
$scope.numbersArray = [[1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 
         [11, 12, 13, 14, 15, 16, 17, 18, 19, 20], 
         [21, 22, 23, 24, 25, 26, 27, 28, 29, 30], 
         [31, 32, 33, 34, 35, 36, 37, 38, 39, 40], 
         [41, 42, 43, 44, 45, 46, 47, 48, 49, 50], 
         [51, 52, 53, 54, 55, 56, 57, 58, 59, 60], 
         [61, 62, 63, 64, 65, 66, 67, 68, 69, 70], 
         [71, 72, 73, 74, 75, 76, 77, 78, 79, 80]]; 

,並測試我執行:

$scope.numbers.no1 = 'A'; 

但沒有任何反應。我在這裏做錯了什麼?

更新: 我想通的是,我錯誤地試圖在div上使用ng模型。 我想要實現的是從80個數字中挑選一個隨機數,並將其背景黑色顯示爲已選中。

+0

我不明白你正在努力實現... – Mistalis

+1

好了,'div'着什麼有一個ngModel – tymeJV

+0

否則,你不能在'div'中使用'ng-model'。它只綁定一個輸入,select,textarea(或自定義窗體控件)。 – Mistalis

回答

1

https://plnkr.co/edit/vT6sU9XnYJsov4q7euwK?p=preview

<div ng-repeat="row in numbersArray" class="numbersRow"> 
    <div ng-repeat="num in row" ng-class="{'clickedNumber': numbers[num]}" 
     ng-click="numbers[num] = !numbers[num]" class="number">{{num}}</div>   
</div> 
+0

謝謝你,併爲這個爛攤子抱歉。我錯誤地嘗試在div上使用ng-model ... – papakias

+0

它完美地工作......再次感謝您! – papakias

0

上面的代碼循環遍歷您的$scope.numbersArray,並將其放入$scope.numbers(鍵值爲輸入值)。希望這是你在找什麼:

<div ng-repeat="row in numbersArray"> 
    <div ng-repeat="num in row"> 
    <input ng-model="numbers['no' + num]" /> {{num}} 
    </div> 
</div> 

Demo on JsFiddle

+0

謝謝你的回覆,我腦中有一個非常不同的東西,我認爲我誤導你一點點與我的ng模型方法.. – papakias