[英]Ng-click trigger action on second click (not on first)
我在模板中有以下代碼:
<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.checkThemeContent = function(theme) {
console.log("Trying to get cards for theme id: " +theme.id);
console.log(theme);
$scope.selectedTheme = theme;
if(theme.count_of_cards >0) {
$rootScope.$emit('detailDisplayed', {});
$scope.displayedTemplate = 'detail';
} else {
$scope.displayedTemplate = 'empty';
}
};
問題是,單擊是執行方法中的代碼后, $ scope.displayedTemplate在范圍內更改,但不顯示模板,在第二次單擊后,一切正常。
我不知道是什么導致這種行為。
有人能告訴我我做錯了什么嗎?
這里是div,其中包含基於displayTemplate范圍的視圖:
<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="checkThemeContent(theme);"
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.