Ng-click被多次调用而不被触发

时间:2015-01-29 21:26:44

标签: javascript jquery html angularjs ionic-framework

标题可能有点令人困惑,但我会解释。

我有这个包含动态内容的标题,将在每个页面中显示。所以我为它创建了一个控制器:

.controller("HeaderCtrl", function($log) {

    var HeaderCtrl = this;

    HeaderCtrl.HelpButtonVisible = "false";

    HeaderCtrl.HideHelpButton = function() {

        HeaderCtrl.HelpButtonVisible = "false";
        $log.log("HideHelpButton");
    }

    HeaderCtrl.ShowHelpButton = function() {

        HeaderCtrl.HelpButtonVisible = "true";
        $log.log("ShowHelpButton");
    }

    $log.log("HeaderCtrl Initialized");
})

我有index.html:

<ion-header-bar class="bar-positive has-tabs-top" align-title="center">
  <h3 class="title">{{}}</h3>
  <button id="help-button" class="button button-stable icon-left ion-information-circled" 
    ng-show="{{ HeaderCtrl.HeaderService.HelpButtonVisible }}" ui-sref="login">Help</button>
</ion-header-bar>   

<!-- Content will be rendered here -->
<ion-nav-view>
</ion-nav-view>

控制器在body标签中引用:

<body ng-app="ido" ng-controller="HeaderCtrl as HeaderCtrl">

然后我有login.html,它会在index.html <ion-nav-view>中重新编号。在这个模板中,我有一个按钮:

<button id="login-button" class="col button button-positive button-small" ng-click="{{HeaderCtrl.ShowHelpButton()}}" ui-sref="main">Login</button>

出于某种原因,只要我加载页面,就会收到以下日志:

HeaderCtrl Initialized
ionic.bundle.js:19387 ShowHelpButton
ionic.bundle.js:19387 ShowHelpButton
ionic.bundle.js:19387 ShowHelpButton
ionic.bundle.js:19387 ShowHelpButton
(2) ionic.bundle.js:19387 ShowHelpButton

为什么这么多次被召唤?我甚至没有点击按钮,我不明白它为什么会被调用。

0 个答案:

没有答案