2015-12-08 117 views
0

在我的應用程序中,我有一個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所有的代碼工作正常,但也有一些問題與模板內的數據。

回答

0

爲了完成,這裏的問題是兩種狀態下的$stateParams.value的雙重定義。一旦我將父母狀態下的value更改爲movie-info,並且當然更改了模板中的參數以符合其工作。

相關問題