簡體   English   中英

在Controller中而不是在Expression中使用過濾器

[英]Using filters in Controller instead of in Expression

我正在使用“ Angular-UI”(日期選擇器)的日期過濾器,在其中可以以dd-mm-yy格式過濾日期。 以下是代碼:

<input id="fromDate" name="fromDate" ng-click="open($event,'fromDate')" data-ng-model="filter.fromDate" datepicker-popup="{{format}}" is-open="datepickers.fromDate" datepicker-options="dateOptions" />
{{filter.fromDate|date:'dd-mm-yy'}}

這很容易,因為日期選擇器現在為我提供了所需格式的日期。 但是,如果我嘗試在控制器中執行類似操作,則無法實現。

var app = angular.module('myApp',['ui.bootstrap']); 
app.controller = ('myCtrl', function($scope, $filter) { 
$scope.filter.fromDate = ""; 
$scope.reqDate = ""; 
$scope.reqDate = $filter('$scope.filter.fromDate', date:'dd-mm-yy'); 
});

有人可以幫我嗎?

首先,日期過濾器不是Angular-UI的一部分。 它是AngularJS本身的一部分。

要從代碼中獲取名為“ date”的過濾器,請使用$ filter服務,並將其名稱傳遞給過濾器: 'date' 它返回過濾功能:

var dateFilter = $filter('date');

這個函數的輸入濾波器作為第一個參數(即你之前把|視圖)如果需要的話,和附加參數(即你后放什么:在視圖中):

$scope.reqDate = dateFilter($scope.filter.fromDate, 'dd-MM-yy');

整個過程當然可以在一行中完成:

$scope.reqDate = $filter('date')($scope.filter.fromDate, 'dd-MM-yy');

暫無
暫無

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

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