模板没有更新,而指令是

时间:2015-11-15 10:50:13

标签: angularjs angularjs-directive angular-ui-router

在我的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不会?

0 个答案:

没有答案