0

我遇到問題,我將不勝感激有人可以提供幫助。如何從Angular JS中的ng-repeat複選框值中獲取對象

現在,我在我的表單中顯示了幾個複選框,這些複選框正在從我的Firebase數據庫中抓取。在我的控制器中,我試圖使用ng-submit來存儲表單的整個數據。 我的複選框JSON格式應該是這樣的。

{ 
    "apple" : true, 
    "spotify" : true 
} 

The checkbox image here

還好下面是HTML和Javascript

<label class="checkbox-inline" ng-repeat="hashtag in hashtags" for="{{hashtag}}"> 
    <input type="checkbox" name="{{hashtag.$value}}" id="{{hashtag.$value}}" value="{{hashtag.$value}}" ng-model="hashtag.SELECTED" ng-true-value="true" ng-false-value="false"> 
    {{hashtag.$value | capitalize}} 
</label> 

我的JavaScript在這裏我的代碼

form.$add({ 
    description: $scope.inputDescription, 
    hashtags: { 
     *I don't know how to put checkbox's result here.* 
    }, 
    time: Firebase.ServerValue.TIMESTAMP, 
    title: $scope.inputTitle, 
    url: $scope.inputUrl 
}) 

任何人都可以幫助嗎?非常感謝。

更新 感謝您的回覆。我真的很感激那些!然而,我發現我忘了提及一些東西,我嘗試了答覆中的答案,但他們沒有奏效。下面的圖片將解釋我的問題。 enter image description here 非常感謝!

最後解決方案萬一人們對我剛纔想到的答案感到好奇。以下是我的解決方案。感謝你們!我喜歡stackoverflow!

function checkbox(hashtags) { 
    var arr = {}; 
    for(var hashtag in hashtags) { 
     if(hashtags[hashtag].SELECTED === true){ 
      arr[hashtags[hashtag].$value] = true; 
     } 
    } 
    return arr; 
} 
+0

是'hashtags'第一個描述的JSON? –

回答

1

這樣的事情,我發現了一個類似的問題的信息:

<input type="submit" name="submit" value="submit" ng-click="check(hashtags)"/> 

$scope.check= function(data) { 
var arr = []; 
for(var i in data){ 
    if(data[i].SELECTED=='Y'){ 
     arr.push(data[i].value); 
    } 
} 
//At this points you have all the selected hashtags on arr Array 

}

+0

非常感謝Chris!我做的。起初,我用你的答案,但不知何故只是沒有工作。然後我再次使用這個答案,稍微抽搐一下,這次它有效!謝謝! –

0

試着改變你的ng-model

ng-model="mhashtags[hashtag.$value]" 

有了這個,你將有一個mhashtags您的範圍內的變量將完全符合您需要發送的內容。

0

假設主題標籤是這樣JSON:

$scope.hashtags = { 
    "apple" : true, 
    "spotify" : true 
}; 

我會改變NG-重複這樣的:

<label class="checkbox-inline" ng-repeat="(hashtag, bool) in hashtags" for="{{hashtag}}"> 
    <input type="checkbox" name="{{hashtag}}" id="{{hashtag}}" ng-value="bool" ng-model="hashtag"> 
    {{hashtag | capitalize}} 
</label> 

包括hashtag是對象的關鍵和布爾是價值,所以不需要「$價值」。