Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Set form's dirty flag from the directive
Message
 
 
Information générale
Forum:
Javascript
Catégorie:
Autre
Divers
Thread ID:
01607461
Message ID:
01607469
Vues:
35
I found the solution in this question

http://stackoverflow.com/questions/17618318/pass-form-to-directive

So, all I did was:
  require: ['^form'],
and
link: function (scope, element, attrs, ctrls) {
                scope.form = ctrls[0];
quick tests confirmed that I achieved desired behavior.


>Hi everybody,
>
>We have a mover type directive. I noticed, that if I move all items from the left to the right or vs. versa using the buttons, the form's dirty state is not changing and therefore when I click Cancel button on the form I don't get a prompt for unsaved changes.
>
>So, I want to programmatically set its dirty state.
>
>My problem is that I can not figure out how to refer the form (or that control) from the directive.
>
>I tried the following code in the MoveRightAll button:
>
>
> $scope.moveRightAll = function() {
>                    var unassignedItems = $scope.unassignedItems.slice(0);
>                    var items = $scope.unassignedItems.slice(0);
>
>                    angular.forEach(items, function (value, key) {
>                        $scope.assignedItems.push(value);
>                        removeItem(unassignedItems, value);
>                    });
>                    $scope.unassignedItems = unassignedItems;
>                    $scope.form.$setDirty(); // my bad attempt
>                    $scope.unassigned = {};
>                };
>
>and it didn't work. I can see that there is no form for the scope variable.
>
>So, how can I access the form which is hosting my directive to set its dirty flag?
>
>Thanks in advance.
If it's not broken, fix it until it is.


My Blog
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform