From 29467bcfb176f1ec2d74aedc5e03524cac4ff3d1 Mon Sep 17 00:00:00 2001 From: Marc Mascort Bou Date: Wed, 10 Jan 2018 09:31:44 +0100 Subject: [PATCH] Use default angular ngModel --- History.md | 6 ++++++ README.md | 2 +- angular-file-model.js | 29 ++++++++++++++--------------- bower.json | 5 +++-- package.json | 2 +- test.js | 2 +- 6 files changed, 26 insertions(+), 20 deletions(-) diff --git a/History.md b/History.md index efea237..414cfe0 100644 --- a/History.md +++ b/History.md @@ -3,3 +3,9 @@ * Renamed module to just `file-model` (Fixes #2) * basic test file + +0.4.0 / 2018-01-10 +================== + + * Use default angular ngModel + * Set model Validity diff --git a/README.md b/README.md index 28584b5..9c85e53 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ Ready to use in your controllers!: `file.html`: - + `controller.js:` diff --git a/angular-file-model.js b/angular-file-model.js index d0159b3..4bbc81a 100644 --- a/angular-file-model.js +++ b/angular-file-model.js @@ -10,28 +10,27 @@ angular.module('file-model', []) - .directive('fileModel', [ - '$parse', - function ($parse) { + .directive('fileModel', function () { return { + require: 'ngModel', restrict: 'A', - link: function(scope, element, attrs) { - var model = $parse(attrs.fileModel); - var modelSetter = model.assign; + link: function($scope, element, attrs, ngModel) { + var checkIsValid = function(){ + ngModel.$setValidity('validFile', element.val() !==''); + }; + + checkIsValid(); - element.bind('change', function(){ - scope.$apply(function(){ - if (attrs.multiple) { - modelSetter(scope, element[0].files); - } - else { - modelSetter(scope, element[0].files[0]); - } + element.bind('change', function () { + $scope.$apply(function () { + checkIsValid(); + ngModel.$setViewValue(attrs.multiple ? element[0].files : element[0].files[0]); + ngModel.$render(); }); }); } }; } - ]); + ); })(); diff --git a/bower.json b/bower.json index 9eff788..e93b81a 100755 --- a/bower.json +++ b/bower.json @@ -1,9 +1,10 @@ { "name": "angular-file-model", - "version": "0.3.1", + "version": "0.4.0", "authors": [ "Jose Luis Rivas ", - "Paul-Louis Nech " + "Paul-Louis Nech ", + "Marc Mascort Bou " ], "description": "Angular support for file in models", "main": "angular-file-model.js", diff --git a/package.json b/package.json index c3ac6d9..b3f01a3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "angular-file-model", - "version": "0.3.1", + "version": "0.4.0", "description": "Angular support for file in models", "main": "angular-file-model.js", "scripts": { diff --git a/test.js b/test.js index 661c7c9..0cbe319 100644 --- a/test.js +++ b/test.js @@ -17,7 +17,7 @@ describe('angular-file-model directive', function () { it('', function () { $rootScope.fileModel = ''; - var element = $compile('') + var element = $compile('') ($rootScope); $rootScope.$digest(); console.log($rootScope.fileModel);