Knockout JS для обновления модели представления с ajax успеха, который можно вызвать вне области видимости - PullRequest
0 голосов
/ 09 марта 2020

Здесь я определяю self.fromDate = ko.observable () и self.toDate = ko.observable (), теперь это значение устанавливается, когда событием нажатия кнопки в функции является вызов с запросом ajax. В случае успеха ajax вызов должен установить значения для этих двух моделей представления. И заданное значение должно быть доступно и за пределами ajax функции успеха

var app = function(){
   self.fromDate = ko.observable();
   self.toDate = ko.observable();
   self.setThisYear = function(){
      $.getJSON("/Dashboard/GetFiscalYearDetails", function (data) {
            self.fromDate(data.fromDate);
            self.toDate(data.toDate);
            console.log(self.fromDate()); //set data
            console.log(self.toDate());   //set date
      }
      console.log(self.fromDate()); //undefined
      console.log(self.toDate());   //undefined
   }
}
ko.applyBindings(new app());

<a href="#" data-bind="click: setThisYear">This Year</a>

1 Ответ

0 голосов
/ 11 марта 2020

Возможно, это неправильно, но, похоже, вы просто упускаете одну важную вещь:

определение self

var app = function(){
    var self = this;
    ...

также есть синтаксические ошибки, такие как $.getJSON( никогда не закрывается

вы должны использовать консоль браузера для определения ошибок, также вы можете назначить vm самой переменной, например:

 var system = ko.applyBindings(new app());

в консоли или любые последующие сценарии, которые вы можете затем просто набрать

system.fromDate() 

для получения текущего наблюдаемого значения или:

system.fromDate("123")

для установки значения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...