2013-09-23 2 views
1

HI У меня есть следующий код в файле js. im, используя фреймворк для приложения для загрузки файлов, используя REST api. в этом http://localhost:49589/api/files он предоставит список файлов, хранящихся в БД.REST api не вызывает навигацию

var Value = ko.observableArray([]); 
      self.js = $.getJSON("http://localhost:49589/api/files", function (result) { 
       self.Value(result); 

      }); 

и вид имеет следующий код

<table data-bind="foreach: Value"> 
      <tr> 
       <td data-bind=" text: ID "></td> 

      <td data-bind=" text: Name "> </td> 
      <td data-bind=" text: Type "> </td> 
      <td data-bind=" text: Size "> </td> 

      </tr> 


     </table> 

когда я загрузить файл им получить предупреждение успеха и добавляется в БД. но если я перейду на домашнюю страницу, то новые данные о файле не будут включены. но если я закрою свое приложение и перезагрузим его, я получаю информацию о добавленных файлах. Я знаю, что это происходит, потому что, пока я перемещаюсь на домашнюю страницу, http://localhost:49589/api/files не вызывается. есть ли способ переустановить домашнюю страницу при навигации

+0

'var Value' и' self.Value' не относятся к одной и той же вещи. – Brett

ответ

2

Убедитесь, что вы вызываете свой API в своей функции активации.

define(['plugins/http', 'durandal/app', 'knockout'], function (http, app, ko) { 
return { 
    Value: ko.observableArray([]), 
    activate: function() { 
     var that = this; 
     return http.get('http://yourservice.com', { format: 'json' }, 'jsoncallback').then(function (response) { 
      that.Value= response; 
     }); 
    } 
} 
}); 
Смежные вопросы