2016-10-07 73 views
0

我是新角度和使用角度ui路由器創建一個小項目。去文件後,我創建了樣本流。但是我被困在將json值傳遞給模板的問題上。如何處理使用角度ui路由器的平滑導航

  • 我無法在頁面上繪製JSON,如果我在我的HTML中添加普通字符串,那麼它會很好,這是一旦我從一個屏幕導航到另一個屏幕。
  • 無法導航到後退點擊後退按鈕。

這是我的嘗試:

HTML:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title>Angular Demo</title> 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js"></script> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.3.1/angular-ui-router.min.js"></script> 

</head> 
<body ng-app="myApp" ng-controller="appController"> 

<div class="container" ui-view> 
    <div id="div1"> 
    <ul> 
     <li ng-repeat="x in data"><a ui-sref="test">{{ x.id }}</a></li> 
    </ul> 
</div> 
</div> 

<script type="text/javascript" src="app.js"></script> 
<script type="text/javascript" src="controller.js"></script> 
</body> 
</html> 

Demo - Plunker

+0

在'test.html'中有'ui-sref =「/」''。這不是一個有效的州名 – Phil

回答

1

試圖改變你的test.html這樣:

<a href="#" ui-sref="home">back</a> 
<h1>test html</h1> 
<h3>id = {{ id }}</h1> 

,並添加了新的狀態的索引(我稱之爲'家'),所以你的app.js看起來就像這樣:

var app = angular.module('myApp', ['ui.router']); 
app.config(function($stateProvider, $urlRouterProvider) { 
$urlRouterProvider.otherwise('/'); 
$stateProvider 
    .state('test', { 
     url: '/test', 
     templateUrl: 'test.html', 
     controller: 'appController' 
    }) 
    .state('home', { 
     url: '/', 
     templateUrl: 'index.html', 
     controller: 'appController' 
    }); 
}); 

Controller.js更新,以接受 'ID' PARAM:

app.controller('appController',function($scope,$stateParams){ 
    var ctrl = this; 
    $scope.data = [{id:01},{id:02}]; 
    $scope.id = $stateParams.id; 
}); 

和index.html要在這一行udpated在id值傳遞:

<li ng-repeat="x in data"><a ui-sref="test({ id: x.id })">{{ x.id }}</a></li> 
+0

謝謝,它如何讓我的json obj進入$ stateParams,以及如何映射到我的路由視圖。 –

+0

更新爲包含將'id'值傳遞給模板。 – laney

相關問題