Skip to content

Commit

Permalink
isolate form fix
Browse files Browse the repository at this point in the history
  • Loading branch information
Sandro Tajè committed Jun 4, 2018
1 parent c45d63b commit c1fb0b1
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 19 deletions.
2 changes: 1 addition & 1 deletion dist/angular-uikit.min.js

Large diffs are not rendered by default.

8 changes: 6 additions & 2 deletions dist/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,13 @@ <h1 class="uk-article-title">Sortable</h1>

<article class="uk-article">
<h1 class="uk-article-title">JSON Table Form</h1>
<uk-ng-json-table-form model="vm.jsonTableModel" structure="vm.structure" can-reorder="true" submit-on-enter="true" read-only="true"></uk-ng-json-table-form>
<form name="form" ng-submit="save(mt.machineType)">
<uk-ng-json-table-form model="vm.jsonTableModel" structure="vm.structure" can-reorder="true" submit-on-enter="true" read-only="false"></uk-ng-json-table-form>
{{form.$valid}}
</form>


{{vm.jsonTableModel | json}}
<!-- {{vm.jsonTableModel | json}} -->
</article>

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js"></script>
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "angular-uikit",
"version": "1.3.16",
"version": "1.3.17",
"description": "Angular Uikit binding",
"main": "./dist/angular-uikit.min.js",
"scripts": {
Expand Down
28 changes: 13 additions & 15 deletions src/angular-uikit.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,29 +24,27 @@ angular.module('angularUikit', [])
if (!ctrl) {
return;
}

// Do a copy of the controller
var ctrlCopy = {};
angular.copy(ctrl, ctrlCopy);

// Get the parent of the form
var parent = elm.parent().controller('form');
// Remove parent link to the controller
parent.$removeControl(ctrl);

// Replace form controller with a "isolated form"
var isolatedFormCtrl = {
$setValidity: function (validationToken, isValid, control) {
ctrlCopy.$setValidity(validationToken, isValid, control);
parent.$setValidity(validationToken, true, ctrl);
},
$setDirty: function () {
elm.removeClass('ng-pristine').addClass('ng-dirty');
ctrl.$dirty = true;
ctrl.$pristine = false;
},
ctrl.$setValidity = function (validationToken, isValid, control) {
ctrlCopy.$setValidity(validationToken, isValid, control);
parent.$setValidity(validationToken, true, ctrl);
};
ctrl.$setDirty = function () {
elm.removeClass('ng-pristine').addClass('ng-dirty');
ctrl.$dirty = true;
ctrl.$pristine = false;
};
angular.extend(ctrl, isolatedFormCtrl);
}
};
}]);;
}]);
;

0 comments on commit c1fb0b1

Please sign in to comment.