AngularJS 如何在页面上获取后端传参

发布于 2021-11-27 17:54:52 字数 289 浏览 835 评论 8

后端是spring,返回页面及参数如下:

model.put("userName", userName);
			return "/cluster";



返回了cluster.html,并传回了userName

如果使用$http.post()方法,会在success中拿到这个变量,但如何在页面刚刚加载时显示呢

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

丢了幸福的猪 2021-12-03 20:34:27

@逝水fox 算了,谢谢你,我现在对Angular理解太浅了,有点理解但不完全理解,让我自己想想吧

三月梨花 2021-12-03 20:34:25

通过指令指定模版文件并为他初始化scope

// 顶部指令
app.directive('appHeader', function() {
	return {
		restrict: 'A',
		templateUrl: contextPath + '/view/common/header.html',
		replace: true,
		controller: function($scope, $element, $attrs) {
			if(userInfo.superAdmin) {
				$scope.avatarCode = 'admin';
			} else if(userInfo.userSex === 'MALE') {
				$scope.avatarCode = 'male';
			} else {
				$scope.avatarCode = 'female';
			}
		}
	}
});

使用:

<header data-app-header></header>

这样的好处是不污染主页面控制器的scope

无声静候 2021-12-03 20:34:09

谢谢,我再研究一下

背叛残局 2021-12-03 20:33:49

回复
在页面刚刚加载就显示这个是做不到的除非数据跟着页面一起过来。按照你ajax的处理过程,延迟是肯定有的。所以你只能是给一个初始值(比如空对象,空列表或空串等),在ajax返回回调前先用于初始化页面界面。

德意的啸 2021-12-03 19:16:16

回复
@逝水fox : 我觉得userName这个变量一定在request中,但我还不知道怎么get这个变量,原理一定是这样的

滥情空心 2021-12-03 16:17:47

回复
@逝水fox : 这个变量是在页面的header中出现的,我把他抽成模板,用ng-include插入到页面中。原来的用法不是模板,直接写在大页面里,用的是EL表达式${userName}可以获得这个变量,但include之后却get不到了,所以我在找解决办法

墨洒年华 2021-12-03 15:14:07

回复
因为ng-include实际是另外一个请求加载的模版文件(并且前端有缓存),所以你的el写在。这个情况你只能是在主页面的scope里引用userName这个属性,给模版引用或者使用AngularJS的指令。

等你爱我 2021-12-03 08:19:12

给定一个初始值。在发起post请求,后更新该值。

必要时使用promise来控制

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文