如果/ Else语句在ng-click内

时间:2017-08-24 17:11:40

标签: javascript angularjs

我正在尝试在ng-click函数中创建一个条件语句。我有if工作,但现在我需要弄清楚如何获得else。我目前有以下代码:

<div ng-click="item.subCategory.length > 1 && showSubCategories();">

如果某个类别中有超过1个子类别,则会运行一个显示我的子类别的函数。我想要做的是扩展它,这样如果只有一个子类别,我可以运行不同的功能。

在Javascript中,语句如下所示:

if (item.subCategory.length > 1) {
    showSubCategories();
} else {
    showProducts();
}

是否可以在ng-click内完成?

4 个答案:

答案 0 :(得分:2)

是。三元运算符可用于ng-click:

<div ng-click="item.subCategory.length > 1 ? showSubCategories() : showProducts()">

这应该让你做你想做的事。

答案 1 :(得分:1)

更简洁的方法是创建一个包装函数(显然将它命名为对你有意义的任何东西)。这可以将逻辑保存在一个地方并且也可以很好地扩展(当您需要更多检查时会发生什么?)

showSubCategoriesOrProducts(item) {
  if (item.subCategory.length > 1) {
    showSubCategories();
  } else {
    showProducts();
  }
}

然后在视图中:

<div ng-click="showSubCategoriesOrProducts(item)">

答案 2 :(得分:1)

HTML:

<div ng-click="onClick(item);">

的JavaScript

$scope.onClick = function(item) {
  if (item.subCategory.length > 1) {
    showSubCategories();
  }
  else {
    showProducts();
  }
}

答案 3 :(得分:1)

我希望这会起作用

ng-click="item.subCategory.length > 1? showSubCategories() : showProducts()" .

这里,“之前的部分?”是条件。如果是,则执行“?”之后的部分,即 showSubCategories()。如果条件为假,则执行后者