2013-12-23 45 views
2

我有一個angularjs ng-class函數我試圖用來設置我的表格行顏色。我對angular和js都相當陌生,所以我的錯誤很可能是用戶錯誤。我正在嘗試檢查日期字段是否爲空/未定義,然後試圖相應地設置行顏色,但我在日期得到一個分析錯誤。我需要做一些與我約會不同的事嗎?AngularJS JavaScript語法錯誤

謝謝!

HTML設置排顏色:

<tr data-ng-repeat="s in data.sites" data-ng-class="setRowConditional({{s.LastScanReceived}})"> 

AngularJS控制器功能:

 //Set row color 
     $scope.setRowConditional = function (lastScanReceived) { 
      var recDate = Date.parse(lastScanReceived); 

      if (typeof recDate === 'undefined') { 
       return "danger"; 
      } 
      else { 
       return "active"; 
      }; 
     } 

解析錯誤:

Error: [$parse:syntax] Syntax Error: Token 'T13' is unexpected, expecting [)] at column 29 of the expression [setRowConditional(2013-12-18T13:59:09.397)] starting at [T13:59:09.397)]. 
+0

是的,它確實...用戶錯誤。 – scarpacci

回答

5

如果你設置一個的jsfiddle它可能是helpul不過關手我會說你可能不需要你的函數調用中的大括號。這意味着你最終的代碼如下(修改)線:

<tr data-ng-repeat="s in data.sites" data-ng-class="setRowConditional(s.LastScanReceived)"> 

一般來說,你在你的HTML模板直接替換文本時需要的大括號內。試試這個,讓我知道它是否有效!

編輯

順便說,存在有條件地設置類的元件的另一種方法。你基本上可以使用以下語法:

<ANY ng-class="{'warning' : isWarningClass, 'error' : isErrorClass}"></ANY> 

在這個例子中,「isWarningClass」是當你想改變「任何」元素「警告」的類,它被設置範圍布爾值。 「isErrorClass」遵循相同的想法。這個例子的好處是它展示瞭如何在同一個元素上有條件地指定多個類。這可能是一種不同的(更簡單的)方式來獲得你正在尋找的東西。再次祝你好運!

+0

真棒,做到了畫了....用戶無知。 – scarpacci

+0

@scarpacci不是無知 - 你只是在學習曲線的開始。堅持下去 - 我想你會愛上角! –

+0

感謝您的幫助夥計。 – scarpacci