在我的application.html.haml
我要注入两个模板:_frontpage
和_movieTemplate
这是我的家乡,
.state('home', {
url: '',
views: {
"frontpage": {
templateUrl: '../assets/angular-app/templates/_frontpage.html',
controller: 'searchCtrl'
},
"movieoverview": {
templateUrl: '../assets/angular-app/templates/_movieTemplate.html',
controller: 'addMovieCtrl'
}
}
})
这是application.html.haml
%div{"ui-view" => "frontpage"}
%div{"ui-view" => "movieoverview"}
%movie-Overview
我有两个ui-view
元素。在这里我注入模板,这很好。我还有一个名为movie-Overview
app
.directive('movieOverview', function () {
return {
templateUrl: '../assets/angular-app/templates/_movieTemplate.html',
controller: 'addMovieCtrl',
};
});
正如您所看到的,指令movieOverview
的作用与:
%div{"ui-view" => "movieoverview"}`
他们共享相同的模板_movietemplate.html
和控制器addMovieCtrl
.movie_container{"ng-repeat" => "movie in movies | orderBy:'release_date'"}
.release_date_container
%h2.release_date{"data-fittext" => ""}
{{ movie.release_date }}
.poster{"back-img" => "http://image.tmdb.org/t/p/w500/{{ movie.image }}"}
%img{"ng-src" => "http://image.tmdb.org/t/p/w500/{{ movie.image }}"}
.movie-info
%h2.title
{{ movie.title }}
%a.delete{"ng-click" => "deleteMovie(movie)"}delete
所以我不希望行为有任何不同,但有。
当用户将新记录(新影片)添加到数据库时,该指令会刷新其模板并在视图中显示新记录。但是ui-view
没有,它只会在刷新后显示视图中的新记录。
有人可以解释为什么加载相同控制器和模板的指令会在添加新记录时更新其视图,并且ui-view不会?