Я использую amplify.js с Knockout.js, и я хочу хранить данные локально. Я попытался использовать этот код: amplify guide , но он не работает для меня.amplify.js - amplify.store не хранить данные
мой взгляд модель
define(['services/datacontext'], function (dataContext) {
var store = amplify.store("offlineData"); // Why is agency undefined after retrieving from the store?!?!?!
var agency = ko.observableArray([]);
var initialized = false;
var save = function (agency) {
return dataContext.saveChanges(agency);
};
var vm = { // This is my view model, my functions are bound to it.
//These are wired up to my agency view
activate: activate,
agency: agency,
title: 'agency',
refresh: refresh, // call refresh function which calls get Agencies
save: save
};
return vm;
function activate() {
if (initialized) {
return;
}
initialized = true;
if (initialized == true) {
amplify.store("offlineData", vm.agency);
}
return refresh();
}
function refresh() {
return dataContext.getAgency(agency);
}
});
После обновления извлекает данные, я сохранить эти данные в локальном хранилище. Поэтому, когда я делаю другой запрос для этой страницы. Я бы ожидал, что var store будет содержать эти данные, но он не определен.
Кто-нибудь знает, как использовать усиление?
Да, вы, вероятно, правы. Я предпочитаю использовать утилиту Knockout 'ko.util.unwrapObservable (vm.agency)', или 'newer' 'ko.unwrap (vm.agency)', читает более приятную IMO - делает ее более явной - а также если вы когда-либо изменить вещи, чтобы быть ненаблюдаемыми (маловероятно), тогда он не сломает код. – jamiebarrow