2015-01-29 5 views
1

У меня есть надрез код, используемый метод GET в $ HTTP, как показано ниже

generateFooter: function(){ 
      var footer; 
      $http.get('/angular-admin/personalize-tenant').then(function(response){ 
        var tenant = {name: response.data.name, 
         address: response.data.addresses[0] 
        }; 
        var address = '<div>'+ tenant.address.street_name + '</div>' 
        + '<div>' + tenant.address.house_number + '</div>' 
        + '<div>' + tenant.address.house_name + '</div>' 
        + '<div>' + tenant.address.postcode + '</div>' 
        + '<div>' + tenant.address.city + '</div>' 
        + '<div>' + tenant.address.province + '</div>' 
        + '<div>' + tenant.address.country + '</div>'; 
        footer ={"cols": [{ 
         "wd": 100, 
         "rows": [{ 
          "text": tenant.name, 
          "filtertext": { 
           "0": tenant.name 
          }, 
          "position": "cell", 
          "required": true, 
          "id": "tenant-name" 
         } 
         ] 
        }], 
         "position": "row", 
         "type": "footer" 
         }; 
        return footer; 
       }); 
      return footer; 
     }, 

Возвращаемый результат «неопределенное» значение.

Я хочу, чтобы значение нижнего колонтитула было возвращено при успешном вызове метода $ http.get в синхронном режиме.

Спасибо всем,

+2

С '$ http' вы не можете блокировать, пока не вернете данные. Если бы это было так, весь пользовательский интерфейс (если бы не браузер) не замерз. Итак, когда выполняется ваш нижний нижний нижний колонтитул, 'footer' все еще не определен. Когда выполняется ваш другой «нижний нижний колонтитул», «нижний колонтитул» определен, но вы не возвращаете его ни к чему. –

+0

Есть ли какие-либо подходы к решению этого вопроса? – huynhthinh

ответ

0

Я надеюсь, что это будет работать для вас,

$http.get('/angular-admin/personalize-tenant').then(function(response){ 
        var tenant = {name: response.data.name, 
        address: response.data.addresses[0] 
        }; 

Вместо того, чтобы попробовать выше ниже формате.

// Simple GET request example : 
$http.get('/someUrl'). 
    success(function(data, status, headers, config) { 
    //In data object you can access the result. 
    // this callback will be called asynchronously 
    // when the response is available 
    }). 
    error(function(data, status, headers, config) { 
    // called asynchronously if an error occurs 
    // or server returns response with an error status. 
    }); 

Если выше не работает для вас, расскажите, где у вас проблемы.

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