ng-init不工作angularjs

时间:2016-05-09 12:49:02

标签: angularjs spring-boot

我收到解析错误

语法错误:令牌' {'是[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";

   }

请告诉我这里有什么问题以及如何解决。感谢

3 个答案:

答案 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是一个可由整个应用程序控制器访问的变量