From 714759100c2a48fe472845ff34050eaac1ce7727 Mon Sep 17 00:00:00 2001 From: Di Peng Date: Fri, 5 Aug 2011 15:01:58 -0700 Subject: refactor(widgets): remove input[button, submit, reset, image] and button windgets These widgets are useless and only trigger extra $updateViews. The only reason we had them was to support ng:change on these widgets, but since there are no bindings present in these cases it doesn't make sense to support ng:change here. It's likely just a leftover from getangular.com Breaking change: ng:change for input[button], input[submit], input[reset], input[image] and button widgets is not supported any more --- src/widgets.js | 7 +------ test/widgetsSpec.js | 20 -------------------- 2 files changed, 1 insertion(+), 26 deletions(-) diff --git a/src/widgets.js b/src/widgets.js index 04d64eee..8a97f61b 100644 --- a/src/widgets.js +++ b/src/widgets.js @@ -447,16 +447,11 @@ function noopAccessor() { return { get: noop, set: noop }; } * */ var textWidget = inputWidget('keydown change', modelAccessor, valueAccessor, initWidgetValue(), true), - buttonWidget = inputWidget('click', noopAccessor, noopAccessor, noop), INPUT_TYPE = { 'text': textWidget, 'textarea': textWidget, 'hidden': textWidget, 'password': textWidget, - 'button': buttonWidget, - 'submit': buttonWidget, - 'reset': buttonWidget, - 'image': buttonWidget, 'checkbox': inputWidget('click', modelFormattedAccessor, checkedAccessor, initWidgetValue(false)), 'radio': inputWidget('click', modelFormattedAccessor, radioAccessor, radioInit), 'select-one': inputWidget('change', modelAccessor, valueAccessor, initWidgetValue(null)), @@ -567,7 +562,7 @@ function inputWidgetSelector(element){ angularWidget('input', inputWidgetSelector); angularWidget('textarea', inputWidgetSelector); -angularWidget('button', inputWidgetSelector); + /** * @workInProgress diff --git a/test/widgetsSpec.js b/test/widgetsSpec.js index 225f0a1f..2f0ab6a3 100644 --- a/test/widgetsSpec.js +++ b/test/widgetsSpec.js @@ -293,18 +293,6 @@ describe("widget", function(){ expect(scope.$get('name')).toEqual('Kai'); }); - it('should call ng:change on button click', function(){ - compile(''); - browserTrigger(element); - expect(scope.$get('clicked')).toEqual(true); - }); - - it('should support button alias', function(){ - compile(''); - browserTrigger(element); - expect(scope.$get('clicked')).toEqual(true); - expect(scope.$element.text()).toEqual("Click Me."); - }); describe('radio', function(){ @@ -417,14 +405,6 @@ describe("widget", function(){ expect(scope.$service('$log').error.logs.shift()[0]). toMatchError(/Syntax Error: Token '''' is an unexpected token/); }); - - it('should report error on ng:change exception', function(){ - compile(''); - browserTrigger(element); - expect(element.hasClass('ng-exception')).toBeTruthy(); - expect(scope.$service('$log').error.logs.shift()[0]). - toMatchError(/Syntax Error: Token '=' implies assignment but \[a-2\] can not be assigned to/); - }); }); describe('ng:switch', function(){ -- cgit v1.2.3