簡體   English   中英

ng-click 和 ng-init 變量定義

[英]ng-click and ng-init variable definition

我正在嘗試使用 ng-click 和 ng-init 使表 header 分揀器工作。

angular js 文檔中的示例需要模塊,如果我安裝和更新該模塊,我的 SPA 會因某種原因而崩潰。 我試圖讓它發揮作用,但即使在其他同事的幫助下,它也失敗了。

所以,我想到了繞過,想出了 ng-click 和 ng-init。 如果我計算點擊次數,那么每偶數點擊,表格按升序排序,每奇數點擊,表格按降序排序。

我可以使用 (click) 進行一次點擊和一次排序(例如,一次點擊 - 升序 - 無論我點擊多少,都可以完成)。 但是,當我使用 ng-click 和 ng-init 時,無法識別 ng-init 中的變量。

<th><button class="some-type" ng-click="count = count + 1; oddEven(count)? sortByAsc(column) : sortByDes(column)" ng-init="count = 0"><b>columnName</b></button></th>

如果我在上面的代碼中的 columnName 旁邊插入 {{ count }} (或代碼中的任何價值),它會給出錯誤說 count 未定義。

<th><button class="some-type" ng-click="count = count + 1" ng-init="count = 0"><b>columnName</b></button></th>

我像上面的代碼一樣在 ng-click 中刪除了額外的 function 調用,但即使是這個簡單的代碼也根本無法識別計數。

那么,有沒有特定的方法在 ng-init 和 ng-click 中聲明變量?

為什么這段代碼不能按原樣工作?

我建議保留一個 object 跟蹤哪個 col 訂單在 acs 或 des 訂單上,您可以在 function 中使用它來調用相應的 function。 這是示例代碼。

var sortOrder = {
  column1: false,
  column2: false
}

$scope.sortBy = function(col) {
  if(sortOrder[col]) {
    sortByAsc(col)
  } else {
    sortByDes(col)
  }
  sortOrder[col] = !sortOrder[col]
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM