2015-10-18 43 views
3

我有一個日期,我希望它有一個過濾器,所以它會有我想要的格式。爲什麼ngModel不可轉讓

HTML:

<input type="text" id="{{ID}}" ng-style="{color: color}" class="tdate ng-pristine ng-untouched ng-valid" ng-model="time.date | DatePlaceHolder"> 

過濾器:

function DatePlaceHolder($filter) { 
    return function (value) { 
     return $filter('date')(value, "dd/MM/yyyy") || "--/--/----"; 
    } 
} 

它工作正常,但我不斷收到此錯誤:

Error: [ngModel: nonassign] Expression 'time.date | DatePlaceHolder' is non-assignable. Element: <input type="text" id="{{ID}}" ng-style="{color: color}" class="tdate ng-pristine ng-untouched ng-valid" ng-model="time.date | DatePlaceHolder"> 
+0

不能在ngModel使用過濾器。顯然你不能將模型值賦給表達式'time.date | DatePlaceHolder'。你應該使用解析器和格式器。 – dfsq

回答

9

ng-model是綁定模式,可欣賞到帶輸入或顯示視圖。你不能在ng模型上使用過濾器。

如果您想要只顯示數據,那麼您可以對非輸入元素使用ng-bind,對錶單元素使用ng-value。

這裏是一個例子。

$ scope.someValue = '在控制器價值'

+0

我可以舉個例子嗎? – Meinhh

+1

好的,謝謝,如果即時通訊使用它作爲jQuery的用戶界面日期選擇器? – Meinhh

+0

你救了我的命 –