2015-12-22 3 views
0
var DialogController = function ($scope, configFac, $q) { 
    var placeholders = []; 
    var varInit = function() { 
     $q.all([configFac]).then(function (response) { 
      $scope.configResources = response[0]; 
      placeholders[0] = response[0].one; 
      placeholders[1] = response[0].two; 
      placeholders[2] = response[0].three; 
     }); 
    }; 

    var states = { 
     'initial': { 
     'key': 'initial', 
     'inputPlaceholder': placeholders[0], 
     'avatar': { 
      'state': 'default' 
     } 
     }, 
     'editing': { 
     'key': 'editing', 
     'inputPlaceholder': placeholders[1], 
     'avatar': { 
      'state': 'listening' 
     } 
     }, 
     'answered': { 
     'key': 'answered', 
     'inputPlaceholder': placeholders[2], 
     'avatar': { 
      'state': 'thinking-complete' 
     } 
     } 
    }; 
)}; 

Поэтому, когда я запускаю этот код с моим проектом, владельцы входных данных устанавливаются как ничто, потому что обещание не возвращается достаточно быстро. Есть ли способ заставить его ждать? Кроме того, еще один способ исправить это, в начале проекта запускается код внутри кода, так есть ли способ сделать вызов из другого модуля, чтобы этот запуск выполнялся во время работы этого кода?Данные не устанавливаются перед рендерингом

ответ

0

Установить новые значения для ваших состояний объекта в обещании then:

var DialogController = function ($scope, configFac, $q) { 
    var placeholders = []; 
    var varInit = function() { 
     $q.all([configFac]).then(function (response) { 
      $scope.configResources = response[0]; 
      placeholders[0] = response[0].one; 
      placeholders[1] = response[0].two; 
      placeholders[2] = response[0].three; 

      states.initial.inputPlaceholder = placeholders[0]; 
      states.editing.inputPlaceholder = placeholders[1]; 
      states.answered.inputPlaceholder = placeholders[2]; 
     }); 
    }; 

    var states = { 
     'initial': { 
     'key': 'initial', 
     'avatar': { 
      'state': 'default' 
     } 
     }, 
     'editing': { 
     'key': 'editing', 
     'avatar': { 
      'state': 'listening' 
     } 
     }, 
     'answered': { 
     'key': 'answered', 
     'avatar': { 
      'state': 'thinking-complete' 
     } 
     } 
    }; 
)}; 
+0

Пыталась, но до сих пор не работает –

+0

ли 'varInit' на самом деле называется? – Komo

+0

Это только после переменных состояния –

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