我使用角度和ui路由器爲我的模板。通過模板傳遞價值
這是這部分路由,
.state('home.container-big',{
url: '',
views: {
"container-big":{
templateUrl: '../assets/angular-app/templates/_movie-info.html',
controller: 'addMovieCtrl'
}
}
})
.state('home.container-big.container-big-trailer',{
url: '',
views: {
"youtube_trailer":{
templateUrl: '../assets/angular-app/templates/_container-trailer.html'
}
}
})
當我home.container-big
狀態加載它注入了__movie-info.html.haml
模板到container-big
視圖。
.container-info
%ul.trailers
%li{"ng-repeat" => "trailer in filteredTrailers = (trailers | filter: { movie_id: movie.movie_id})"}
%a{:href => "#", "value" => "{{ trailer.link }}", "ui-sref" => ".container-big-trailer"} Load trailer
.container-trailers
%div{"ui-view" => "youtube_trailer"}
此模板的另一個模板注射,當用戶點擊Load trailer
它加載home.container-big.container-big-trailer
狀態和噴射模板_container-trailer.html.haml
在youtube_trailer
視圖。
%youtube{:videoid => "value from clicked link"}
我想要做的,當用戶點擊Load template
通過<a href>
從_movie-info
模板點擊進入_container-trailer
模板值。
這裏有一個更清楚的例子,
_movie-info.html.haml
模板,
<div class="container-info">
<ul class="trailers">
<li><a href="#", value="KlyknsTJk0w", ui-sref=".container-big-trailer">Load trailer</a></li>
<li><a href="#", value="nyc6RJEEe0U", ui-sref=".container-big-trailer">Load trailer</a></li>
<li><a href="#", value="zSWdZVtXT7E", ui-sref=".container-big-trailer">Load trailer</a></li>
<li><a href="#", value="Lm8p5rlrSkY", ui-sref=".container-big-trailer">Load trailer</a></li> <-- clicked element
<li><a href="#", value="ePbKGoIGAXY", ui-sref=".container-big-trailer">Load trailer</a></li>
</ul>
</div>
<div ui-view="youtube_trailer"></div> <-- here the _container-trailer is injected
_container-trailer.html.haml
<youtube videoid="Lm8p5rlrSkY"></youtube>
你還需要''''參數在狀態的'url'來填充'$ stateParams' – Phil
不完全但確定,你需要確定一個參數,但它不必在URL中,附加到我的答案。日Thnx! – iH8
不知道你可以通過'ui-sref'傳遞非url參數。無法在頁面刷新中生存,但仍然很高興知道:) – Phil