2016-05-09 10 views
0

取得していますパースエラーに機能していないNG-INIT angularjs私は

構文エラー:トークン「{」式[ユーザー= $ {ユーザー}]の欄8で予期しないトークンがあるから始まる[{ユーザー}] 。

home.html

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

この例を参照すると、私は Getting data from Spring MVC in Angular JS in the initial view callをangularjsするためにモデルを送っています。

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"; 

    } 

私はここで間違っているものを知っていると、それを修正する方法をしてください。おかげ

+0

は、あなたが同様に 'mainCtrl'ためのコードを投稿することができ、アプリケーション全体コントローラーによってvaribleアクセス可能ですか? – Phil

+0

更新ありがとうございます。あなたがコントローラを間違って宣言しているようで、 '.controller( 'mainCtrl'、[" $ rootScope "、" $ scope "、" $ http "、" $ location "、" $ route "関数の依存関係の名前を配列の前の要素として渡しています。 – Phil

+0

user私は春から帰ってきて、私はコードを追加しました – userRaj

答えて

0

ユーザーの周りにカーリーブレースを削除し、これに変更した場合、それはあなたのために構文エラーを削除します:

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

はあなたが$userのスプリングコードと人口が正しく動作しているしていることに注意を払います。

+0

中括弧を削除すると、ユーザ値は定義されていません – userRaj

+0

'mainCtrl'への依存として' $ user'を追加する必要があります – Phil

+0

$ userとして依存関係を追加できません。ユーザはサービスもコントローラでもありません – userRaj

1

は、あなたのコントローラーを変更してみてください、その代わりにビュー名を単なる文字列を送信する、あなたはのModelAndViewオブジェクトを送信します。一方

@RequestMapping(value = "/", method = RequestMethod.GET) 
public ModelAndView getIndex() { 

    ModelAndView mv = new ModelAndView("home"); 
    mv.addObject("user", "USER_NAME"); 
    return mv; 
} 

を、あなたは、任意のテンプレートフレームワーク(thymeleaf、速度を使用しています。 ..)?その場合、フロントエンドでモデル属性を取得する方法に問題がある可能性があります。 (テンプレートフレームワークの質問に対する答えとして)

EDIT

あなたがthymeleafを使用している場合は、あなたがあなたのindex.hmtlにこのような何かをする必要があります:

<body ng-controller="mainCtrl as main" data-th-attr="ng-init='main.user=\''+${user}+'\''> 

私は過去にこの問題で自分自身を見つけました。

+0

また、フロントエンドアプリケーションで不要なスコープの問題を回避するために、コントローラーのエイリアスを設定したことに気づくことをお勧めします。また、何が何であるかが明確になっています – alpez

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は

関連する問題