gaurav.s23 Ответов: 1

Как doi вызывает функцию angular js и выбранное событие изменения даты (jQuery date picker)


Мне нужно отфильтровать таблицу по дате. Я хочу, чтобы таблица была отфильтрована, когда я изменил дату.

Я использовал jQuery date picker для календаря.

Прямо сейчас я добавил кнопку, которая при щелчке (ng-click)вызывает функцию angular js для фильтрации таблицы. но я хочу, чтобы эта функция вызывалась при событии ng-change. Что-то вроде этого.

Пожалуйста, проверьте мой код ниже и дайте мне знать, что мне нужно изменить, чтобы он работал.

Спасибо.

Что я уже пробовал:

Мой код:

code in controller:

$('#dtRms2').datepicker({
        changeMonth: true,
        changeYear: true,
        showAnim: 'slideDown',
        duration: 'fast',
        dateFormat: 'mm/dd/yy',
        onSelect: function (date) {
            $scope.Login_Val = date;
            $scope.$apply();
        }
    });
	
	
	
 $scope.OnLoginChange = function (LoginChangeFilter, inputVal) {

                $scope.Tables = $scope.allTables;
                debugger;
                console.log(LoginChangeFilter);
                console.log(inputVal);
                //let 
                var newArray = [];
                    <pre>switch (LoginChangeFilter) {
                        case '=':

newArray = $ scope.Таблицы. фильтр (функция (r) {
var d1 = новая дата(r. lgDt. toString());
var d2 = новая дата(inputVal. toString());
отладчик;
если (Д1.методов gettime() === Д2.методов gettime()) {
возвращение Р;
}
});
отладчик;
перерыв;
случай ' >=':


newArray = $ scope.Таблицы. фильтр (функция (r) {
var d1 = новая дата(r. lgDt. toString());
var d2 = новая дата(inputVal. toString());

если (Д1.gettime () так и GT;= Д2.методов gettime()) {
возвращение Р;
}
});
отладчик;
перерыв;
случай ' <=':
newArray = $ scope.Таблицы. фильтр (функция (r) {
var d1 = новая дата(r. lgDt. toString());
var d2 = новая дата(inputVal. toString());


if (d1. getTime () <= d2. getTime()) {
возвращение Р;
}
});

перерыв;
по умолчанию:
newArray = $ scope.Таблицы
перерыв;
}

$масштаб.Таблицы = newArray;
}


HTML:
<td>
                            <table>
                                <tr>
                                    <td>
                                        <select ng-model="LoginChangeFilter">
                                            <option ng-repeat="c in Comparers" value="{{c}}">{{c}}</option>
                                        </select>
                                    </td>
                                    </tr>
                                <tr>
                                    <td>
                                        <input type="text" id="dtRms2" ng-model="Login_Val" ng-change="OnRmsLoginChange(LoginChangeFilter,Login_Val)">{{RmsLogin_Val}}
                                    </td>
                                    <td>
                                        <%--<input type="hidden" id="start" ng-model="Login_Val" ng-change="OnLoginChange(LoginChangeFilter,Login_Val)"/>--%>
                                        <input type="button" value="Go" ng-click="OnRmsLoginChange(LoginChangeFilter,Login_Val)" />
                                    </td>
                                </tr>
                            </table>
                        </td>          

1 Ответов

Рейтинг:
5

gaurav.s23

Это сработало . У меня была опечатка в имени переменной.

$('#dtRms2').datepicker({
       changeMonth: true,
       changeYear: true,
       showAnim: 'slideDown',
       duration: 'fast',
       dateFormat: 'mm/dd/yy',
       onSelect: function (date) {
           $scope.Login_Val = date;

           var dtDate = $scope.LoginVal;
           var cmp = $scope.LoginChangeFilter;
           //$scope.OnLoginChange(cmp, dtDate);
$scope.OnLoginChange(cmp, dtDate);

           $scope.$apply();
                  }
   });


Graeme_Grant

Пожалуйста, не отвечайте на свой собственный вопрос решением, а затем примите его как действительное решение. Это считается респектабельным фермерством и может привести к тому, что вы будете забанены, если продолжите. Вместо этого обновите свой вопрос.