2017-08-24 76 views
-1

我試圖在我的ng-click函數中創建條件語句。我有if工作,但現在我需要弄清楚如何獲得else。我目前有下面的代碼:如果/否則在ng-click語句中

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

這將運行一個函數來顯示我的子類,如果有一個類別中的1個多子類。我想要做的就是擴展它,這樣如果只有一個子類別,我可以運行不同的功能。

在JavaScript中聲明是這樣的:

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

是否有可能做到這一點的ng-click內?

+0

您是否嘗試將整個if/else塊寫入'ngClick'?我會假設它會正確插入。 – zero298

+0

或者只是將檢查合併到函數本身中 – aw04

+0

@ zero298我希望能做到這樣的簡寫方式 – user13286

回答

1

更簡單的方法是創建一個包裝函數(很明顯,將它命名爲任何對你有意義的東西)。這樣可以使邏輯在一個地方,也很好地擴展(當你需要更多的檢查,會發生什麼?)

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

然後在視圖:

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

我建議使用這種方法。儘量避免混淆你的觀點。保持儘可能多的邏輯,你可以在你的控制器。 – zero298

+0

這工作出色,更清潔,謝謝! – user13286

+0

哈哈,他編輯從他的原來是我的答案(見下文)@ zero298 –

2

是。三元運營商可用於ng點擊:

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

這應該讓你做你想做的。

1

HTML: 「?」

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

的JavaScript

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

我希望這將工作

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

這裏,部分是條件。如果是,則「?」後面的部分將執行showSubCategories()。如果條件爲假,則後者將被執行