2015-05-27 42 views
1

我對AngularJS相當陌生我想知道是否可以在參數ng-bind內創建新對象?我可以在ng-bind內創建JavaScript對象嗎?

我需要這個,因爲我不想在從signalr接收信號後在JavaScript中編輯我的模型(循環遍歷模型中的所有字符串日期並將它們解析爲日期)這就是我目前正在做的...

我寧願用NG-綁定,以幫助在視圖中創建,如:

ng-bind="new Date(date).toDateString();" 

我知道你可以訪問角NG綁定一個對象的屬性,以及使用其它操作,如累計操作,但是可以創建一個像上面那樣的對象。

這是否有任何缺點?據我所知性能應該是相同的,相同數量的對象初始化正在發生,並且「如果」日期更改新的Date對象與新值將被創建,舊的應該被處置。

乾杯。

+0

你不能做到這一點...表達式針對各自的範圍進行評估。 Angular parser不評估js,它只評估一個有效的角度表達式。對我來說,這樣做也是一種不好的做法。這些初始化並不意味着他們應該去控制器。還可以結帳datefilter,這可能是有幫助的 – PSL

+0

我原以爲重新創建JSON模型是一種不好的做法,這是通過轉換標準模型而成爲公司標準的。通過使用控制器,它將允許我將字符串日期轉換爲視圖可用的日期對象,而不更改模型?如果是這樣那麼這是一個解決方案... – Xela

+0

使用控制器設置viewmodel綁定到視圖,如果這意味着你想將字符串日期轉換爲日期對象,我會建議這樣做..並格式化它在控制器本身,或者你甚至可以在視圖上使用日期過濾器來格式化它。 – PSL

回答

1

作爲我的問題的答案,您確實可以使用一個篩選器在一個ng-bind中創建一個對象,這要歸功於PSL的想法。

綁定:

ng-bind="date | dateFilter;" 

代碼:

angular.module('app', []).filter('dateFilter', function ($filter) { 
    return function (input) { 
     if (input == null) { 
      return ""; 
     } 
     return new Date(input); 
    }; 
相關問題