Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
By-passing $dirty check
Message
De
31/03/2015 14:57:16
 
 
Information générale
Forum:
Javascript
Catégorie:
Autre
Divers
Thread ID:
01609780
Message ID:
01617536
Vues:
21
>>>Hi Viv,
>>>
>>>Somehow this doesn't seem to work on one page. I am getting a message about Changes.
>>>
>>>My directive is
>>>
>>>
>>>(function () {
>>>    'use strict';
>>>
>>>    var app = angular.module('sysMgrApp');
>>>
>>>    app.directive('noDirtyCheck', [function () {
>>>        // Interacting with input elements having this directive won't cause the
>>>        // form to be marked dirty.
>>>        // http://stackoverflow.com/questions/17089090/prevent-input-from-setting-form-dirty-angularjs
>>>        return {
>>>            restrict: 'A',
>>>           
>>>            require: 'ngModel',
>>>            link: function (scope, element, attrs, ctrl) {           
>>>
>>>                element[0].focus(function () {
>>>                    ctrl.$pristine = false;
>>>                });
>>>            }
>>>        };
>>>    }]);
>>>})();
>>>
>>>and the page has this control:
>>>
>>>
>>> <div class="col-lg-5 col-lg-offset-1">
>>>                    <input class="form-control" type="text" ng-model="searchTerm" data-no:dirty-check ="true"
>>>                    placeholder="@Labels.search" />
>>>                </div>
>>>
>>>when I type something in that control and inspect the element, I can see the ng-dirty class on it.
>>>
>>>Do you see why it's not working in that form? The directive does seem to work OK in other forms.
>>
>>Surprised if it is. I think you need the $setPristine() *function* which doies:
 this.$setPristine = function() {
>>    ctrl.$dirty = false;
>>    ctrl.$pristine = true;
>>    $animate.removeClass($element, DIRTY_CLASS);
>>    $animate.addClass($element, PRISTINE_CLASS);
>>  };
>
>1. Why do you name the function with $?
>
>2. Do we need to define DIRTY_CLASS and PRISTINE_CLASS somewhere?
>
>Thanks.

It's a built-in angular function - just call it.....
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform