gpt4 book ai didi

javascript - 使用 MVC、C# 和 AngularJS 时如何在页面加载时保留页面的下拉值?

转载 作者:行者123 更新时间:2023-11-28 06:58:25 25 4
gpt4 key购买 nike

使用 C#、.Net、MVC5、AngularJS 和 Select2 下拉控件,dd 位于布局顶部,用户可以在其中选择项目。 select2 控件的填充方式如下 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;
});

按如下方式设置 Controller 中的值:

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。

我可以启动对 Controller 的后台调用,以填充服务器上的自定义用户上下文 (UserContext.Identity.CurrentProject),但放弃了这一点,转而尝试 Angular 方式。

本质上,当 DD 更改时,我想在客户端设置一个全局可访问的对象(我已经可以在服务器端执行此操作)。

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

请给点建议?

最佳答案

看看https://github.com/browserstate/history.js/如果您想将其保存在浏览器/客户端。

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

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com