Skip to content
This repository was archived by the owner on Sep 8, 2020. It is now read-only.

Commit 915e977

Browse files
homerjamwesleycho
authored andcommitted
setPristine on form as well as ngModel
Closes #101
1 parent 55acc1e commit 915e977

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

src/tinymce.js

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,15 @@ angular.module('ui.tinymce', [])
77
uiTinymceConfig = uiTinymceConfig || {};
88
var generatedIds = 0;
99
return {
10-
require: 'ngModel',
11-
link: function(scope, element, attrs, ngModel) {
10+
require: ['ngModel', '^?form'],
11+
link: function(scope, element, attrs, ctrls) {
1212
if (!$window.tinymce) {
1313
return;
1414
}
1515

16+
var ngModel = ctrls[0],
17+
form = ctrls[1] || null;
18+
1619
var expression, options, tinyInstance,
1720
updateView = function(editor) {
1821
if (options.raw === true) {
@@ -43,6 +46,9 @@ angular.module('ui.tinymce', [])
4346
ed.on('init', function() {
4447
ngModel.$render();
4548
ngModel.$setPristine();
49+
if (form) {
50+
form.$setPristine();
51+
}
4652
});
4753
// Update model on button click
4854
ed.on('ExecCommand', function() {

test/tinymce.spec.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,12 @@ describe('uiTinymce', function () {
2727
scope.$apply();
2828
}
2929

30+
it('should be pristine on load', function() {
31+
compile();
32+
expect(element.find('textarea').controller('form').$pristine).toBe(true);
33+
expect(element.find('textarea').controller('ngModel').$pristine).toBe(true);
34+
});
35+
3036
describe('compiling this directive', function() {
3137

3238
it('should include the passed options', function() {

0 commit comments

Comments
 (0)