簡體   English   中英

ng-init無法正常工作angularjs

[英]ng-init not working angularjs

我收到解析錯誤

語法錯誤:令牌'{'是表達式[user = $ {user}]的第8列中從[{user}]開始的意外令牌。

home.html

 <body ng-controller="mainCtrl" ng-init="user= ${user}">

引用此示例,我將模型發送到angularjs 在初始視圖調用中從Angular JS中的Spring MVC獲取數據

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) {
})
});

彈簧控制器

@RequestMapping(value = "/", method = RequestMethod.GET)
   public  String getIndex(Model model)
   {
     model.addAttribute("user","user");
     return "home";

   }

請讓我知道這里出了什么問題以及如何解決。 謝謝

嘗試更改您的控制器,因此發送一個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}+'\''>

過去,我發現自己遇到了這個問題。

如果您刪除用戶周圍的居里括號並更改為此,則會為您刪除語法錯誤:

<body ng-controller="mainCtrl" ng-init="user= $user">

認為您是春季代碼, $user填充工作正常。

我曾使用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是整個應用程序控制器都可以訪問的變量

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM