2016-05-16 2 views
0

Необходимо передать объекты в URL-адресе параметру. При печати «console.log (дата)» в порядке, однако, когда я пытаюсь напечатать контракт параметра aprece «Data [объект Object] необходимо присвоить значение объектаПередача данных с URL-адреса для параметра

var url = 'http://localhost:55239/api/reports/contracts/'; 
    $http.get(url) 
     .success(function (data) { 
      var contract = data; 
      console.log("Dados "+ contract); 
      console.log(data); 
     }) 

ответ

0

Фактически необходимые данные будут в data свойстве response

Таким образом, код должен быть,

var url = 'http://localhost:55239/api/reports/contracts/'; 
    $http.get(url) 
     .then(function (res) { 
      var contract = res.data; 
      console.log("Dados="); 
      console.log(contract); 
     }, function(err){ 
      console.log(err); 
     }) 

Кроме того, вы получаете "Data [object Object], потому что вы добавляете строку с объектом, и, следовательно, браузер пытается показать объект как строку.

Таким образом, console.log данные contract отдельно от String "Dados=", и вы сможете увидеть ваши данные красивыми и чистыми.

Любые сомнения? Спросите в комментариях

+0

Мне нужно бросить кубики в «контракт», потому что я сделаю ng -repeat в html и перечислим все значения, содержащиеся в контракте –

+0

Если ваш «контракт» представляет собой массив, то вы можете сделать это нравится, ng-repeat = "c в контракте" ... Console.log (контракт) покажет вам, если это массив. Используйте хром, если возможно –

+0

Контракт дает как неопределенный –

0

Вы можете получить доступ к свойства contract объекта с помощью (точка) оператор .

IE:.

console.log(contract.myProperty);

0

Просто попробуйте, var url = 'http://localhost:55239/api/reports/contracts/'; $http.get(url) .success(function (data){ var contract = data.data; console.log("Dados "+ contract); console.log(data); })

Когда вы делаете звонок, вы получаете информацию, связанную с ответом на ваш запрос. Для примера, когда вы делаете data.status, он дает вам код состояния, который ваш прием от server.data.daa дает вам фактический ответ.

0

Данные, как представляется, являются объектами JSON.

Вы можете использовать

console.log("Dados " + JSON.stringify(contract));

распечатать его со строкой.

+0

мне нужно бросить кости в «контракт» для Сделаю нг -REPEAT в HTML и перечислить все значения Содержащиеся в контракте –

0

Вы в правильном направлении.

Проблема в том, что вы выполняете ведение журнала консоли объекта contract, связанного со строкой'Dados '. Таким образом, ваша консоль показывает contract as [object], потому что она конвертируется в строку. Попробуйте console.log(contract), и вы увидите объект, сериализованный в журнале консоли.

Pt-BR: está funcionando corretamente, mas como tu ta concatenando uma string com o objeto contratos, o console loga [объект] no lugar do contrato e não o objeto serializado com faz normalmente.

Смотрите мои фрагменты, используя как УСПЕХ, а затем:

var myApp = angular.module('myApp',[]); 
 

 
myApp.controller('myAppController', ['$scope', '$http', function($scope, $http){ 
 
    
 
    $scope.appTitle = "Http demo"; 
 
    $scope.contractUsingSuccess = []; 
 
    $scope.contractUsingThen = []; 
 
    $scope.loadingPostsSuccess = true; 
 
    $scope.loadingPostsThen = true; 
 
    
 
    var url = 'http://jsonplaceholder.typicode.com/posts'; 
 

 
    $http.get(url) 
 
    .then(function (response) { 
 
    $scope.contractUsingThen = response.data; 
 
    $scope.loadingPostsThen = false; 
 
    }); 
 
    
 
    $http.get(url) 
 
    .success(function (contract) { 
 
    $scope.contractUsingSuccess = contract; 
 
    $scope.loadingPostsSuccess = false; 
 
    }); 
 
}]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 

 

 
<div ng-app="myApp"> 
 
    <div ng-controller="myAppController"> 
 
    <h1 ng-bind="appTitle"></h1> 
 
    
 
    <h2>Using Success</h2> 
 
    <div ng-show="loadingPostsSuccess">Loading posts from API with SUCCESS...</div> 
 
    <ul ng-show="!loadingPosts"> 
 
     <li ng-repeat="item in contractUsingSuccess" ng-bind="item.title"></li> 
 
    </ul> 
 
    
 
    <h2>Using Then</h2> 
 
    <div ng-show="loadingPostsThen">Loading posts from API whit THEN...</div> 
 
    <ul ng-show="!loadingPosts"> 
 
     <li ng-repeat="item in contractUsingThen" ng-bind="item.title"></li> 
 
    </ul> 
 
    </div> 
 
</div>

+0

Проблема в том, что контракт не получает данные объекта Json, прошедшие через URL-адрес –

+0

@YehudiMikhael, используйте 'then', вместо' success' , См. Мой отредактированный ответ –

+0

На самом деле это получается. Проблема заключается в том, как вы используете console.log. Попытайтесь изменить 'console.log (« Dados »+ contract);' to 'console.log (contract);' и посмотреть, будет ли консоль регистрировать объект rigth. – vinagreti

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