簡體   English   中英

第二次單擊時觸發Ng單擊觸發器操作(不是第一次)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM