2016-03-14 2 views
0

enter image description here Я хочу отправить изменение значение «false» в упоминаниях -> «rcs» -> «visible» в несколько массивов в json Im new in angular and i don t знаю, как я могу справиться, поэтому попробуйте, но он не работает. Вы можете мне помочь ?отправить данные в несколько массивов в угловых js

В моем массиве json есть объект, называемый «упоминает», а в этом объекте - массив с другим объектом, который называется «rcs» (в конце файла), и есть строка «visible», которая является логической , Я хочу изменить это логическое значение «истина», потому что в настоящее время «ложь»

Вот мой JSON:

"data": { 
    "company_name": "Laplagem", 
    "entrepreneur_firstname": "guillaumO", 
    "entrepreneur_lastname": "nouveaunomF", 
    "login": "[email protected]", 
    "company_address": "120 rue de la pacrette fraiche", 
    "company_zipcode": "78630", 
    "company_city": "Pignons sur rue", 
    "company_country": "France", 
    "company_phone": "", 
    "activity_type": "V", 
    "declaration_period": "M", 
    "activity_start": "2016-02-01", 
    "company_siret": "53106089500020", 
    "rcs_city": "Paris", 
    "naf_code": "", 
    "has_accre": false, 
    "invoice_header": "Laplagem\nguillaumO nouveaunomF\n120 rue de la pacrette fraiche\n78630 Pignons sur rue\[email protected]\n", 
    "invoice_footer": "SIRET : 53106089500020 - RCS : Paris", 
    "invoice_payment_delay": "60", 
    "bank_balance": 0, 
    "mentions": { 
     "vat": { 
     "value": "TVA non applicable, art. 293 B du CGI", 
     "visible": true, 
     "alwaysVisible": true, 
     "alterable": false 
     }, 
     "delay": { 
     "value": "En cas de retard de paiement, une pénalité de 3 fois le taux d’intérêt légal sera appliquée, à laquelle s’ajoutera une indemnité forfaitaire pour frais de recouvrement de 40€", 
     "visible": true, 
     "alwaysVisible": true, 
     "alterable": true 
     }, 
     "free": { 
     "value": "Ma nouvelle mention perso", 
     "visible": true, 
     "alwaysVisible": false, 
     "alterable": true 
     }, 
     "bank": { 
     "value": "", 
     "visible": true, 
     "alwaysVisible": false, 
     "alterable": true 
     }, 
     "cga": { 
     "value": "Membre d’une association agréée, le règlement des honoraires par chèque est accepté", 
     "visible": true, 
     "alwaysVisible": false, 
     "alterable": true 
     }, 
     "rcs": { 
     "value": "Dispensé d’immatriculation au registre du commerce et des sociétés (RCS)", 
     "visible": false, 
     "alwaysVisible": false, 
     "alterable": true 
     } 
    } 
    }. 

Вот мой контроллер:

$scope.valuercs = function(){ 
    var mytoken = sessionStorage.getItem('token'); 
    var transform = {"mentions":{"rcs": {"value" : "true"}} }; 
    factovalrcs.send(mytoken, transform).then(function(conf){ 
    console.log(conf); 
    }); 
} 

Вот моя служба:

.factory('factovalrcs', ['$http','$q', function ($http,$q){ 
     var newdata = {}; 
     newdata.send = function(mytoken, transform){ 
     var deferred = $q.defer(); 
     $http({ 
      method: 'POST', 
      url: "http://api.tiime-ae.fr/0.1/request/settings-update.php", 
      headers: {'Content-Type': 'application/x-www-form-urlencoded'}, 
      transformRequest: function(obj) { 
       var str = []; 
       for(var p in obj) 
       str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p])); 
       return str.join("&"); 
      }, 
      data: {token: mytoken, transform} 
      }) 
      .success(function(conf){ 

       deferred.resolve(conf); 

       // var promise = deferred.promise; 
       // promise.then(function(result){ 
       // var mydata = result["data"]; 
       // console.log(mydata); 
       // } 
       //); 
      }); 
      return deferred.promise; 
      }; 
      return newdata; 
}]) 
+2

«я хочу, чтобы отправить изменить значение„ложных“в упоминает ->» RCS "->„значение“ в несколько массивов в json "- можете ли вы перефразировать или объяснить это? Я не понимаю. –

+0

В моем массиве json есть объект, называемый «упоминаниями», а в этом объекте - массив с другим объектом, называемый «rcs», и есть строка «visible», которая является логической. Я хочу изменить это логическое значение на «true», потому что он в настоящее время «false» – xenurs

+0

'conf.data.mentions.rcs.visible = true;', однако вам нужно назначить 'conf' для области где-то. –

ответ

1

Вы не можете просто назначить $scope.valuercs, так как ваш вызов AJAX является асинхронным. Вам нужно переключить visible бит в функции успеха, а также присвоить результат $scope.valuercs:

var mytoken = sessionStorage.getItem('token'); 
    var transform = {"mentions":{"rcs": {"value" : "true"}} }; 
    factovalrcs.send(mytoken, transform).then(function(conf){ 
    console.log(conf); 
    conf.data.mentions.rcs.visible = true; 
    console.log(conf); 
    $scope.valuercs = conf; 
    }); 
+0

Хорошо, я понимаю, но единственное, что json получает от API, поэтому мне действительно нужно изменить значение json. Поэтому для этого мне нужно отправить запрос в POST с моим сервисом, как я могу это сделать (связанный с моим сервисом, который я показал вам) – xenurs

+0

Код по-прежнему использует вашу службу 'factovalrcs'. –

+0

Конечно, но я хочу изменить эту строку: данные: {token: mytoken, transform} моего сервиса, чтобы отправить запрос – xenurs

Смежные вопросы