在我的應用程序中,我有一個UI路由器狀態home.container-big
,並且該狀態具有嵌套狀態home.container-big.container-big-trailer
。子控制器從父級觸發JSON.parse
在home.container-big
狀態下,我返回一個字符串形式的值。對於我的movie-info.html
模板,我需要將字符串值更改爲對象。所以我用JSON.parse
。
.state('home.container-big',{
params: {
value: null
},
url: '',
views: {
"container-big":{
templateUrl: '../assets/angular-app/templates/_movie-info.html',
controller: function($scope, $stateParams, $state) {
$scope.movie = JSON.parse($stateParams.value);
$scope.movie = $stateParams.value;
}
}
}
})
在home.container-big.container-big-trailer
狀態我返回一個字符串值,並將其放置在$scope.trailer_link
數據,以便我可以使用範圍在_container-trailer
模板。
.state('home.container-big.container-big-trailer',{
params: {
value: null
},
url: '',
views: {
"youtube_trailer":{
templateUrl: '../assets/angular-app/templates/_container-trailer.html',
controller: function($scope, $stateParams, $state) {
$scope.trailer_link = $stateParams.value);
console.log ($scope.trailer_link)
}
}
}
})
我在這裏的問題是,home.container-big.container-big-trailer
內$stateParams.value
也穿過JSON.parse
從父狀態home.container-big
。這將導致錯誤,
SyntaxError: Unexpected token R
at Object.parse (native)
因爲如果我從我的路由器控制器中刪除JSON.parse
所有的代碼工作正常,但也有一些問題與模板內的數據。