2016-05-14 2 views
1
// This is ionic code 
.state('tab.chat-details', { 
     url: '/chats/:chatId', 
     views: { 
     'chat-details': { 
      templateUrl: 'templates/chat-detail.html', 
      controller: 'ChatDetailController', 
      resolve: { 
      chat: ['$stateParams', 'Chats', function($stateParams,Chats) { 
       var ran = Chats.getChat(parseInt($stateParams.chatId, 10)); 
       console.log(ran); 
      }] 
      } 
     } 
     } 
    }) 

// service code 

getChat: function(chatId) { 
     chats.forEach(function(value, key) { 
     if(value.id === chatId) { 
      return value; 
     } 
     }) 
    } 

// контекст Когда я открыл мой отладчик соответствующего значения становится возвращенным, но в конце концов, когда он достиг своей цели решить это показывает не определенно. Может кто-нибудь мне помочь.Объект достигает объект Resolve

ответ

1

Функция вашего чата не возвращает ничего.

Я мало знаю об Ионном, но я предполагаю, что его свойство разрешения совпадает с $ routeProvider от Angular, которое равно resolve - {Object.<string, function>=}.

Каждое свойство объекта разрешения является функцией. Контроллер будет загружаться с помощью вложенных зависимостей после того, как все ваши функции разрешения возвратят значения (или если эти возвращаемые значения были обещаниями, после того, как все они были разрешены).

Вы должны уметь разрешить это, просто вернув свой «запущенный» объект.

// This is ionic code 
.state('tab.chat-details', { 
     url: '/chats/:chatId', 
     views: { 
     'chat-details': { 
      templateUrl: 'templates/chat-detail.html', 
      controller: 'ChatDetailController', 
      resolve: { 
      chat: ['$stateParams', 'Chats', function($stateParams,Chats) { 
       var ran = Chats.getChat(parseInt($stateParams.chatId, 10)); 
       console.log(ran); 
       return ran; 
      }] 
      } 
     } 
     } 
    }) 
Смежные вопросы