使用C#、. Net,MVC5,AngularJS和Select2下拉控件,dd位于布局的顶部,用户可以在其中选择项目。将选择2控件填充为here轮廓。

我创建了一个全局Angular服务,如下所示:

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),但为了尝试使用Angular方式而放弃了此操作。

本质上,当更改DD时,我想在客户端设置一个全局可访问对象(我已经可以在服务器端做到这一点)。

考虑到当前的技术栈,解决此问题的最佳方法是什么?

有什么建议吗?

最佳答案

如果要保存在浏览器/客户端上,请查看https://github.com/browserstate/history.js/

否则,您将不得不将信息发布回服务器并从模型或ViewBag中填充它。

关于javascript - 使用MVC,C#和AngularJS时如何在页面加载之间保留页面的下拉值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32366119/

10-17 00:05