[英]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.