Javascript Ng第二次单击时单击触发操作(不是第一次)
我在模板中有以下代码:Javascript Ng第二次单击时单击触发操作(不是第一次),javascript,jquery,angularjs,templates,angularjs-ng-click,Javascript,Jquery,Angularjs,Templates,Angularjs Ng Click,我在模板中有以下代码: <a href="" ng-ctrl="ThemesCtrl" ng-click="checkThemeContent({{theme}})" ng-repeat="theme in themes" ng-hide="theme[filterProp] !== filterValue" class="list-group-item"> <b>{{theme.name}}</b>
<a href="" ng-ctrl="ThemesCtrl" ng-click="checkThemeContent({{theme}})" ng-repeat="theme in themes" ng-hide="theme[filterProp] !== filterValue" class="list-group-item">
<b>{{theme.name}}</b>
<span class="themesListIcons">
<i class="fa fa-check-square-o"></i> {{theme.avg_score}}
<i class="fa fa-comment-o"></i> {{theme.count_of_cards}}
</span>
</a>
问题是,在执行方法中的代码后,$scope.displayedTemplate在作用域中更改,但不显示模板,第二次单击后一切正常
我不知道是什么导致了这种行为
谁能告诉我我做错了什么
以下是基于displayedTemplate范围的包含视图的div:
<div class="col-md-8" ng-controller="CardsCtrl">
<!-- ADD TEMPLATE -->
<div ng-if="displayedTemplate == 'add'" class="header" ng-include src="'/views/themes/add_theme.html'">
</div>
<!-- EDIT TEMPLATE -->
<div ng-if="displayedTemplate == 'edit'" class="header" ng-include src="'/views/themes/edit_theme.html'">
</div>
<!-- THEME DETAIL TEMPLATE -->
<div ng-if="displayedTemplate == 'detail'" class="header" ng-include src="'/views/themes/detail_theme.html'">
</div>
<!-- DEFAULT TEMPLATE -->
<div ng-if="displayedTemplate == 'default'" class="header" ng-include src="'/views/themes/default_theme.html'">
</div>
<!-- NO CARD TEMPLATE -->
<div ng-if="displayedTemplate == 'empty'" class="header" ng-include src="'/views/themes/empty_theme.html'">
</div>
</div>
对于任何建议,我认为问题在于如何将参数传递给函数。像这样简单地传递它
ng click=“checkThemeSecont(theme);”
第一次关闭将checkThemeSecont({{theme})
更改为checkThemeSecont(theme)
第二次,尝试初始化$scope.displayedTemplate
a.e.给出默认值。听起来像是启动时未定义的
<div class="col-md-8" ng-controller="CardsCtrl">
<!-- ADD TEMPLATE -->
<div ng-if="displayedTemplate == 'add'" class="header" ng-include src="'/views/themes/add_theme.html'">
</div>
<!-- EDIT TEMPLATE -->
<div ng-if="displayedTemplate == 'edit'" class="header" ng-include src="'/views/themes/edit_theme.html'">
</div>
<!-- THEME DETAIL TEMPLATE -->
<div ng-if="displayedTemplate == 'detail'" class="header" ng-include src="'/views/themes/detail_theme.html'">
</div>
<!-- DEFAULT TEMPLATE -->
<div ng-if="displayedTemplate == 'default'" class="header" ng-include src="'/views/themes/default_theme.html'">
</div>
<!-- NO CARD TEMPLATE -->
<div ng-if="displayedTemplate == 'empty'" class="header" ng-include src="'/views/themes/empty_theme.html'">
</div>
</div>