使用 ng-click 在两个函数之间切换

Using ng-click to toggle between two functions

我正在为 angular 使用 bootstrap-UI 的日期选择器。我想在两个功能之间切换。现在()和清除()。这可能在 Angular 的 ng-click 中吗?

http://plnkr.co/edit/aMcKwXOSQwgnGwfNN9yI?p=preview

开关有 ng-click="today()" 我想给它添加 clear(),谢谢。

控制器代码:

      $scope.today = function() {
      $scope.dt = new Date();
      };
      $scope.today();
      $scope.clear = function () {
         $scope.dt = null;
      };

编辑 - 我看到了 this 答案,但我想探索所有选项。

您可以创建一个 toggle() 函数,它将根据跟踪状态的变量调用您想要的函数。然后,您可以在模板中简单地使用此函数作为 ng-click="toggle()".

像这样。

var toggled = false;
$scope.toggle = function() {
    if (toggled) {
        $scope.clear();
    } else {
        $scope.today();
    }
    toggled = !toggled;
};

更短的版本

var toggled;
$scope.toggle = function() {
    $scope[toggled ? "clear" : "today"]();
    toggled = !toggled;
};

但是如果模板中不再调用 clear()today() 我建议将它们从 $scope.

中删除