1
0
mirror of /repos/Prototyper.git synced 2025-12-30 06:31:32 +01:00

keep alive during import

This commit is contained in:
Aiko Mastboom 2013-04-27 19:05:54 +02:00
parent 38a612a494
commit f8572e993a

View File

@ -402,7 +402,6 @@ function updateViewModelMain(app, viewModel, doc, vm_config) {
ko.mapping.fromJS(snapshot, vm_config.mapping, viewModel);
viewModel._newAttribute("");
debug && console.log('updated viewModel', viewModel);
app.fn.main.setDoc(viewModel._chosenAttributeId());
mainViewModelUpdating = false;
app.fn.main.updateSelectedMode();
}
@ -575,7 +574,6 @@ function loadConfig(app, location, viewModels, callback) {
initializeConfig(doc, app, viewModels, callback);
return doc.on('change', function handleConfigChange() {
debug && console.log('Config changed!!');
app.state.running = false;
initializeConfig(doc, app, viewModels, callback);
});
});
@ -587,14 +585,15 @@ var config_location = {
};
var app = {
state: {
running: false
running: false,
vm: {bound : {}}
},
doc: {},
fn: {},
vm: {}
};
function bindViewModels(app) {
function initKnockout() {
/* http://www.knockmeout.net/2012/05/quick-tip-skip-binding.html */
ko.bindingHandlers.stopBinding = {
init: function() {
@ -602,27 +601,37 @@ function bindViewModels(app) {
}
};
ko.virtualElements.allowedBindings.stopBinding = true;
}
function bindViewModels(app) {
_.forEach(_.keys(app.vm), function (key) {
var viewModel = app.vm[key];
var viewModelConfig = app.config.snapshot.viewModel[key];
var elementId = viewModelConfig.elementId;
var element = document.getElementById(elementId);
console.log('applyBindings',key,viewModel,viewModelConfig, elementId);
ko.applyBindings(viewModel, element);
})
if (key in app.state.vm.bound) {
debug && console.log('bindViewModels bindings already applied for', key);
} else {
var viewModel = app.vm[key];
var viewModelConfig = app.config.snapshot.viewModel[key];
var elementId = viewModelConfig.elementId;
var element = document.getElementById(elementId);
console.log('bindViewModels applyBindings',key,viewModel,viewModelConfig, elementId);
ko.applyBindings(viewModel, element);
app.state.vm.bound[key] = elementId;
}
});
console.log('Viewmodels bound', 'ok');
}
function configLoaded(err) {
if (err) {
console.error('Error loading config', err);
}
console.log(app, 'Loaded', err || 'ok');
console.log('app.state.running', app.state.running);
if (app.state.running == false) {
initKnockout();
}
bindViewModels(app);
console.log('Viewmodels bound ok');
app.state.running = true;
}
console.log('app.state.running', app.state.running);
loadConfig(app, config_location, app.vm, configLoaded);
</script>