Стоит задача, при обновлении страницы подгружать данные из сесии. Делаю как показано ниже. В сессию на стороне сервера все кладется нормально, вытаскивается из сессии и кладется в this.selval тоже вроде нормально (судя по console.log), но на странице все сбрасывается, как будто из сессии ничего не подгрузилось. В чем может быть проблема?
var app = angular.module('MainApp', []);
app.controller('MainCtrl', function ($http) {
this.selval = {};
this.getfromsess = function () {
$http({
method: 'POST',
url: '/ajax/',
data: {action: 'getsess'},
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
}).then(function (result) {
if (result.data.sess) {
this.selval = result.data.sess;
console.log(this.selval);
}
}, function (error) {
console.log(error);
});
};
this.init = function () {
this.getfromsess();
};
this.init();
this.fruit_items = [{
name: 'Яблоко',
id: 'apple'
}, {
name: 'Груша',
id: 'pear'
}];
this.vegetable_items = [{
name: 'Картошка',
id: 'potato'
}, {
name: 'Помидор',
id: 'tomato'
}];
this.del = function (key) {
var sv = {};
for (i in this.selval) {
if (i != key) {
sv[i] = this.selval[i];
}
}
this.selval = sv;
this.savetosess();
};
this.slct = function (key, item) {
this.selval[key] = item;
this.savetosess();
};
this.savetosess = function () {
$http({
method: 'POST',
url: '/ajax/',
data: {action: 'save', data: angular.toJson(this.selval)},
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
}).then(function (result) {
console.log(result);
}, function (error) {
console.log(error);
});
}
}
<div ng-app="MainApp">
<div ng-controller="MainCtrl as main">
<ul class="fs-ul-dynamic fs-ul-changed-list">
<li ng-show="main.selval.fruit">
<span class="fwb">Фрукт:</span> {{ main.selval.fruit.name }}
<a href="javascript:void(0);" ng-click="main.del('fruit')"></a>
</li>
<li ng-show="main.selval.ptypevegetable>
<span class="fwb">Овощ:</span> {{ main.selval.vegetable.name }}
<a href="javascript:void(0);" ng-click="main.del('vegetable')"></a>
</li>
</div>
</div>
<div ng-hide="main.selval.fruit">
<span class="zagolovok-small">Фрукт:</span>
<ul class="fs-ul-dynamic">
<li ng-repeat="item in main.fruit_items" ng-click="main.slct('fruit', item)">
{{ item.name }}
</li>
</ul>
</div>
<div ng-hide="main.selval.vegetable">
<span class="zagolovok-small">Овощ:</span>
<ul class="fs-ul-dynamic">
<li ng-repeat="item in main.vegetable_items" ng-click="main.slct('vegetable', item)">
{{ item.name }}
</li>
</ul>
</div>
if (isset($_POST)) {
$postdata = @file_get_contents("php://input");
$request = json_decode($postdata);
if (is_object($request) || is_array($request)) {
switch((string)$request->action) {
case 'save':
$jdata = json_decode((string)$request->data);
if (is_object($jdata) || is_array($jdata)) {
$DATA->setSData('DATA', array('ajax' => ModD::objtoarray($jdata)));
$DATA->saveSData();
$sdata = $DATA->getSData('DATA');
die(json_encode(array('do' => 'none')));
} else {
die(json_encode(array('do' => 'none')));
}
break;
case 'getsess':
$sdata = $DATA->getSData('DATA');
die(json_encode(array('sess' => $sdata['ajax']))));
break;
default:
die(json_encode(array('do' => 'none')));
}
}
}