我收到解析错误
语法错误:令牌' {'是[user = $ {user}]从[{user}]开始的第8列的意外标记。
home.html的
<body ng-controller="mainCtrl" ng-init="user= ${user}">
参考这个例子,我将模型发送给angularjs Getting data from Spring MVC in Angular JS in the initial view call
controller.js
angular.module('userSystem', [ 'ngRoute' ]).config(
function($routeProvider, $httpProvider) {
$routeProvider.when('/', {
templateUrl : 'home.html',
controller : 'home'
}).when('/login', {
templateUrl : 'login.html',
controller : 'navigation'
}).otherwise('/');
}).controller('mainCtrl',
function($rootScope, $scope, $http, $location, $route) {
})
});
Spring Controller
@RequestMapping(value = "/", method = RequestMethod.GET)
public String getIndex(Model model)
{
model.addAttribute("user","user");
return "home";
}
请告诉我这里有什么问题以及如何解决。感谢
答案 0 :(得分:1)
尝试更改您的控制器,因此您只需发送一个ModelAndView对象,而不是只发送带有视图名称的String:
@RequestMapping(value = "/", method = RequestMethod.GET)
public ModelAndView getIndex() {
ModelAndView mv = new ModelAndView("home");
mv.addObject("user", "USER_NAME");
return mv;
}
另一方面,你使用任何模板框架(百里香,速度......)?在这种情况下,您的问题可能在于如何在前端获取模型属性。
编辑(作为模板框架问题的答案):
如果您使用百里香,您需要在index.hmtl中执行以下操作:
<body ng-controller="mainCtrl as main" data-th-attr="ng-init='main.user=\''+${user}+'\''>
过去我发现自己遇到了这个问题。
答案 1 :(得分:0)
如果您删除用户周围的curley括号并更改为此,则会删除语法错误:
<body ng-controller="mainCtrl" ng-init="user= $user">
认为你是春天代码并且$user
的人口正常工作。
答案 2 :(得分:0)
我使用angularjs中的resolve来填充用户详细信息。
$routeProvider.when('/', {
templateUrl : 'home.html',
controller : 'home',
resolve: {
message: function(messageService){
var promise= messageService.getMessage();
promise.then(data){
allConstants.user=data;
}
return promise;
}
}
}).when('/login', {
templateUrl : 'login.html',
controller : 'navigation'
}).otherwise('/');
这里allConstants是一个可由整个应用程序控制器访问的变量