【问题标题】:What is the recommended way to have an optional parameter for an AngularJS function?为 AngularJS 函数添加可选参数的推荐方法是什么?
【发布时间】:2015-08-06 04:25:36
【问题描述】:

编辑:这篇文章Is there a better way to do optional function parameters in Javascript? 提供了这个问题的答案。

这是我的控制器:

.controller("NavTabController", ['TabService', function(TabService) {
        var self = this;

        self.switchTab = function(currentTab, dropDown) {
            TabService.switchTab(currentTab, dropDown);
        }
}])

这是工厂:

.factory("TabService", [function() {
    var tab = "home";
    return {
        switchTab: function(currentTab, dropDown) {
            tab = currentTab;
        }
    }
}])

在我的 HTML 中,我有这个:

<a href="#" ng-click="ctrl.switchTab('home')">Home</a>
<a href="#" ng-click="ctrl.switchTab('home', 'middle')">Optional</a>

如您所见,我希望 dropDown 是可选的,因为有时它不提供。

话虽如此,为 AngularJS 函数添加可选参数的推荐方法是什么?

【问题讨论】:

  • 你打错字了~dropDown vs dropDrown
  • @Phil 你是对的,这就是导致问题的原因。事实证明,如果没有提供参数,AngularJS 会自动使参数“未定义”。当我不提供参数时,AngularJS 不会抛出错误。我假设推荐的方法是执行“if (typeof optionalArg === 'undefined') { optionalArg = 'default'; }”,因为这是其他 SO 问题的答案。所以我会把它标记为重复。

标签: javascript angularjs optional-parameters


【解决方案1】:

尝试使用arguments.length === 2

【讨论】:

    猜你喜欢
    • 2022-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-06
    • 2013-05-08
    • 1970-01-01
    • 2018-04-21
    相关资源
    最近更新 更多