Я сталкиваюсь с проблемой, и я буду признателен, что кто-то может помочь.
Сейчас я показываю несколько флажков в моей форме, которые захватывают мою базу данных firebase. И в моем контроллере я пытаюсь использовать ng-submit для хранения целых данных формы. Мой флажок Формат JSON должен выглядеть следующим образом.
{
"apple" : true,
"spotify" : true
}
хорошо, мой код из 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 result here.*
},
time: Firebase.ServerValue.TIMESTAMP,
title: $scope.inputTitle,
url: $scope.inputUrl
})
Кто-нибудь может помочь, пожалуйста? Огромное спасибо.
Обновление Спасибо за ответ. Я очень ценю это! Однако я узнал, что забыл что-то сказать, и я попробовал ответы из ответа, и они не сработали. Снимок ниже объяснит мою проблему. введите описание изображения здесь Большое вам спасибо!
Наконец, решение в случае, если люди интересуются ответом, который я только что понял. Следующее - мое решение. Спасибо вам, ребята! Мне нравится stackoverflow!
function checkbox(hashtags) {
var arr = {};
for(var hashtag in hashtags) {
if(hashtags[hashtag].SELECTED === true){
arr[hashtags[hashtag].$value] = true;
}
}
return arr;
}
Что-то вроде этого, я нашел информацию по аналогичному вопросу:
<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
}
Попробуйте изменить свою ng-model
на
ng-model="mhashtags[hashtag.$value]"
При этом у вас будет переменная mhashtags
в вашей области действия, которая будет именно то, что вам нужно отправить.
Предполагая, что хэштеги - это JSON:
$scope.hashtags = {
"apple" : true,
"spotify" : true
};
Я бы изменил ng-repeat:
<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 является ключом объекта, а bool - значением, поэтому нет необходимости в "$ value".
hashtags
первый описанный JSON?