Используя C#, .Net, MVC5, AngularJS и выпадающий элемент Select2, dd находится в верхней части макета, где пользователь может выбрать проект. Элемент управления select2 заполняется как указано here.Как сохранить выпадающее значение страницы при загрузке страницы при использовании MVC, C# и AngularJS?
Я создал глобальное Угловое обслуживание следующим образом:
var app = angular.module('app', ['kendo.directives', 'ngResource', 'ngRoute', 'ngSanitize', 'ui.select2']);
app.factory('globalContainer', function() {
var globalContainer = {};
globalContainer.dashboardGlobals = {
userContext: Object(null),
currentProject: Object(null),
projectList: Object(null),
testString: "Global Test String!!!"
};
return globalContainer;
});
Установка значений в контроллере следующим образом:
app.controller('projectListController', ['$rootScope', '$scope', '$log', 'abstractDataFactory', 'customUIFunctions', 'globalContainer',
function ($rootScope, $scope, $log, abstractDataFactory, customUIFunctions, globalContainer) {
var vm = this;
vm.dashboardGlobals = globalContainer.dashboardGlobals;
...
vm.dashboardGlobals.projectList = result.value;
// make a restful call w/ data to set value on server side
Вопрос заключается в том, что, когда я загрузить новую страницу, значение были сброшены. Я предполагаю, что если это был Angular SPA, это не было бы проблемой, однако это не SPA.
Я могу начать фоновый вызов контроллера, чтобы заполнить пользовательский контекст на сервере (UserContext.Identity.CurrentProject), но отказался от этого в пользу попытки углового.
По существу, когда DD изменен, я хочу установить глобально доступный объект на стороне клиента (я уже могу это сделать на стороне сервера).
Каков наилучший способ приблизиться к этому, учитывая текущий технический стек?
Предложения, пожалуйста?
сохранить значение либо на сервере, либо на localStorage – charlietfl