Angular ng-show 不是 运行 有条件的
Angular ng-show not running conditional
我试图 运行 在 ng-repeat 中执行此操作,但 ng-show 中的条件似乎不起作用。所以我把它移走了,它似乎仍然没有 运行。
表达式显示 now_playing 但无论我如何编写条件都不会隐藏或显示元素。
<div class="container" ng-controller="MovieCtrl as movie" ng-init="loadMovies(movie_filter='now_playing')">
<div class="row">
<div class="col-sm-12">
<h1>Movies</h1>
<p ng-show"movie_filter === 'now_playing'">{{movie_filter}}</p>
<form name='filterMovies'>
<div class="form-group">
<select ng-change="loadMovies(movie_filter)" ng-model="movie_filter" name="movie_filter" id="movie_filter">
<option selected value="now_playing">Now Playing</option>
<option value="top_rated">Top Rated</option>
<option value="popular">Popular</option>
</select>
</div>
</form>
</div>
<div class="col-md-2 col-sm-3 col-xs-6 movies" ng-repeat="movie in movies | limitTo: 18">
<a href="movie_details.php?id={{movie.id}}"><img src="https://image.tmdb.org/t/p/w300{{movie.poster_path}}" alt="" class="img-responsive"></a>
</div>
</div>
</div>
我认为您的代码无法正常工作,因为:
- 您在
ng-show
之后漏掉了一个等于运算符
- 您已在此处
ng-controller="MovieCtrl as movie"
创建了控制器别名 movie
,但您并未使用它
对于 view/html 中的访问控制器变量,在您的情况下,您需要将别名附加到变量名称,例如您的 ng-show
将是:
ng-show="movie.movie_filter === 'now_playing'"
或者您可以从 ng-controller
标签中删除别名,这样您的代码就可以工作了。
我试图 运行 在 ng-repeat 中执行此操作,但 ng-show 中的条件似乎不起作用。所以我把它移走了,它似乎仍然没有 运行。
表达式显示 now_playing 但无论我如何编写条件都不会隐藏或显示元素。
<div class="container" ng-controller="MovieCtrl as movie" ng-init="loadMovies(movie_filter='now_playing')">
<div class="row">
<div class="col-sm-12">
<h1>Movies</h1>
<p ng-show"movie_filter === 'now_playing'">{{movie_filter}}</p>
<form name='filterMovies'>
<div class="form-group">
<select ng-change="loadMovies(movie_filter)" ng-model="movie_filter" name="movie_filter" id="movie_filter">
<option selected value="now_playing">Now Playing</option>
<option value="top_rated">Top Rated</option>
<option value="popular">Popular</option>
</select>
</div>
</form>
</div>
<div class="col-md-2 col-sm-3 col-xs-6 movies" ng-repeat="movie in movies | limitTo: 18">
<a href="movie_details.php?id={{movie.id}}"><img src="https://image.tmdb.org/t/p/w300{{movie.poster_path}}" alt="" class="img-responsive"></a>
</div>
</div>
</div>
我认为您的代码无法正常工作,因为:
- 您在
ng-show
之后漏掉了一个等于运算符
- 您已在此处
ng-controller="MovieCtrl as movie"
创建了控制器别名movie
,但您并未使用它
对于 view/html 中的访问控制器变量,在您的情况下,您需要将别名附加到变量名称,例如您的 ng-show
将是:
ng-show="movie.movie_filter === 'now_playing'"
或者您可以从 ng-controller
标签中删除别名,这样您的代码就可以工作了。