我使用角度和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