0
Я пытаюсь сохранить некоторые настройки в localStorage с использованием пользовательского интерфейса Kendo. Я мою установку кода, как это:Использование локального хранилища с пользовательским интерфейсом Kendo
settings: {
getSettings: function() {
console.log("reading settings");
console.log("localStorage.getItem('chkEnergy') = " + localStorage.getItem('chkEnergy'));
console.log("this.get('chkEnergy) = " + this.get('chkEnergy'));
this.set('chkEnergy', localStorage.getItem('chkEnergy'));
this.set('chkSleep', localStorage.getItem('chkSleep'));
this.set('chkActivity', localStorage.getItem('chkActivity'));
this.set('notifications', localStorage.getItem('notifications'));
this.set('notification_interval', localStorage.getItem('notification_interval'));
},
saveSettings: function() {
console.log("writing settings");
console.log("this.get('chkEnergy) = " + this.get('chkEnergy'));
localStorage.setItem('chkEnergy', this.get('chkEnergy'));
localStorage.setItem('chkSleep', this.get('chkSleep'));
localStorage.setItem('chkActivity', this.get('chkActivity'));
localStorage.setItem('notifications', this.get('notifications'));
localStorage.setItem('notification_interval', this.get('notification_interval'));
},
chkEnergy: localStorage.getItem('chkEnergy'),
chkSleep: localStorage.getItem('chkSleep'),
chkActivity: localStorage.getItem('chkActivity'),
notifications: false,
notification_interval: 1,
intervals: [{
'IntName': '1. time',
'value': '1'
},
{
'IntName': '2. timer',
'value': '2'
},
{
'IntName': '3. timer',
'value': '3'
},
{
'IntName': '4. timer',
'value': '4'
}]}
и на мой взгляд:
<div data-role="view" data-layout="main" data-model="APP.models.settings" >
<div data-role="notification" id="ntf"></div>
<ul data-role="listview" data-style="inset" data-type="group">
<li>Indstillinger
<ul>
<li>Påmindelser
<input data-role="switch" id="switchNotification" data-on-label="til" data-off-label="fra" data-bind="checked: notifications, events: { change: setNotifications }" />
</li>
<li>Interval
<input data-role="dropdownlist" id="notificationgap" data-theme="silver" data-text-field="IntName" data-value-field="value" data-bind="value: notification_interval,
source: intervals,
events: {
change: setNotifications
},
enabled: notifications" style="width:5em">
</li>
</ul>
</li>
<li>Spørgsmål
<ul>
<li>Træthed
<input data-role="switch" data-on-label="til" data-off-label="fra" data-bind="checked: chkEnergy, events: { change: saveSettings }" />
</li>
<li>Søvn
<input data-role="switch" data-on-label="til" data-off-label="fra" data-bind="checked: chkSleep, events: { change: saveSettings }" />
</li>
<li>Aktivitet
<input data-role="switch" data-on-label="til" data-off-label="fra" data-bind="checked: chkActivity, events: { change: saveSettings }" />
</li>
<li>
<a data-role="button" data-bind="events: { click: getSettings }">Click me</a></li>
</ul>
</li>
</ul>
</div>
, но по какой-то причине this.get ('chkEnergy') является отсроченное значение. Это ios, как будто значение не изменяется до тех пор, пока событие «изменения» не завершится. Зачем?