Извините, если это было задано раньше, я искал, но мне очень сложно выразить свою проблему в дружеском поиске. И я не могу понять это из документации нокаута, однако это похоже на основной вопрос.Проводка вызова AJAX в Knockout.js
У меня есть 3 списка избранного и модель нокаута. При выборе значения в первом списке обновляется наблюдаемое в модели представления. Затем мне нужно сделать сообщение ajax, отправив это значение на сервер и получив список значений, которые я помещаю в наблюдаемый массив в модель представления, который, в свою очередь, обновит остальные 2 списка.
Я доволен проводкой до наблюдаемых, и эта часть работает нормально, мой вопрос заключается в том, как и где запускать вызов ajax.
Если я вызываю его при событии изменения первого выбора, это, по-видимому, вызывает состояние гонки, что означает, что он иногда вызывается до того, как обновилась модель просмотра. Я мог бы вызвать его, не используя наблюдаемые, но это не кажется очень нокаутированным.
Если я использую пользовательскую привязку для извлечения значений, это приведет к тому, что вызов ajax будет сделан дважды, и я не могу поместить извлечение в функцию, потому что он должен выполняться асинхронно (и он будет вызываться дважды).
Мне кажется, что мне нужно что-то, что слушает наблюдаемое и запускает вызов ajax без какого-либо визуального элемента.
Любая помощь будет с благодарностью принята.
Общим примечанием. Извлечение данных с сервера, не изменяющего данные на этом сервере, подразумевает запрос GET, а не запрос POST. – Tomalak
Да, в действительности есть немного больше. Я просто дошел до самых простых фактов. Ваш ответ ниже - именно то, что я искал. Благодарю. –
К сожалению, похоже, что существует целая группа RESTless API, которые используют POST для всего, включая запросы. Это в конечном итоге приводит к проблемам масштабирования, потому что становится невозможным легко сказать, что можно или не может кэшировать. – ebohlman