2014-12-25 4 views
1

Пожалуйста, исправьте меня, если я ошибаюсь: Я хочу получить разные типы счетов для разных таблиц на мой взгляд, и это так, как я думал, будет лучшим , Скорее всего, нет.

На мой взгляд, я называю:

Таблица 1:

{{billsTypeVariableIncome}}

Таблица 2:

{{billsTypeVariableBills}}

Это как мой контроллер выглядит следующим образом:

$scope.billsTypeVariableIncome = getBillsByType(1); 
$scope.billsTypeVariableBills = getBillsByType(2); 
function getBillsByType(bill_type){ 

     $http.get("/api/bills/by/type/"+bill_type). 
     success(function(data){ 
      return data; 

     }). 
     error(function(data){ 

      console.log('Error ' + data); 

     }) 
    } 

Im rookie (очевидно), поэтому, вероятно, мой подход неправильный. Любая помощь высоко ценится!

+0

Вы вызываете функцию прежде, чем это было определено. Определите 'getBillsByType' перед его вызовом, JavaScript выполняется сверху вниз. Кроме того, 'getBillsByType' ничего не возвращает. Вы должны установить переменные '$ scope' внутри обратного вызова успеха' $ http'. –

+0

Помещение функции перед переменными $ scope не помогло ни одному. Пробовал это раньше. Я почти уверен, что мой подход ошибочен. Для меня это примитивно. –

ответ

3

Всякий раз, когда вы используете услугу $http, она всегда возвращает обещание, поскольку запросы AJAX асинхронны, и вы не уверены в том, когда запрос будет завершен. Поэтому для регистрации обратных вызовов используются обещания.

И вы ожидаете возвращения данных из объекта обещания, который невозможен. Поэтому измените код на что-то вроде этого:

$scope.getBillsByType = function(billType, variableName) { 
    $http.get("/api/bills/by/type/" + billType). 
    success(function(data) { 
     $scope[variableName] = data; 
    }). 
    error(function(data){ 
     console.log('Error ' + data); 
    }) 
}; 

$scope.getBillsByType(1, 'billsTypeVariableIncome'); 
$scope.getBillsByType(2, 'billsTypeVariableBills'); 

Это простой пример, вы можете сделать и другими способами.

Надеюсь, это поможет!

Спасибо,
SA

+0

Большое спасибо! Это решило. Счастливого Рождества! –

+1

@DennisLaymi вы должны принять ответ, если вы не ищите еще один ответ. – Mritunjay

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