aboutsummaryrefslogtreecommitdiffstats
path: root/test/ng/directive
AgeCommit message (Collapse)Author
2013-02-18fix(ngClass): keep track of old ngClass value manuallyPer Rovegård
ngClassWatchAction, when called as a $watch function, gets the wrong old value after it has been invoked previously due to observation of the interpolated class attribute. As a result it doesn't remove classes properly. Keeping track of the old value manually seems to fix this. Closes #1637
2013-02-18fix(compile): should not leak memory when there are top level empty text nodesPete Bacon Darwin
The change to prevent <span> elements being wrapped around empty text nodes caused these empty text nodes to have scopes and controllers attached, through jqLite.data() calls, which led to memory leaks and errors in IE8. Now we exclude all but document nodes and elements from having jqLite.data() set both in the compiler and in ng-view. Fixes: #1968 and #1876
2013-02-14fix(a): workaround IE bug affecting mailto urlsIgor Minar
Apparently there is a really weird bug in IE6-8 that causes anchor textContent to be reset with href content when both contain @ symbol. Inserting a bogus comment node into all anchor elements in IE works around this browser bug. I'm fixing the issue via directive because that way we'll fix it for jQuery as well. I fixed an e2e test too because it was incorrect. Closes #1949
2013-01-18fix(ngSwitch): don't leak when destroyed while not attacheddanilsomsikov
The leak can occur when ngSwich is used inside ngRepeat or any other directive which is destroyed while its transcluded content (which includes ngSwitch) is not attached to the DOM. Refactor ngSwitch to use controller instead of storing data on compile node. This means that we don't need to clean up the jq data cache. Controller reference is released when the linking fn is released. Closes #1621
2013-01-17fix(ngRepeat): correctly apply $last if repeating over objectPete Bacon Darwin
If the $last property is calculated from the original collectionLength on an object and properties starting with $ were filtered out, then $last is never applied and $middle is applied erroniously. Closes #1789
2012-12-05fix(select): support optgroup + select[multiple] combo_pants
Closes #1553
2012-11-26fix(ngRepeat): support mostly-stable repeating for primitivesIgor Minar
I'm reverting changes that were originally done to ngRepeat to fix #933, because these are now not necessary after the previous changes to keep ngModel always synced with the DOM.
2012-11-26test(ngRepeat): clean up and improve testsIgor Minar
2012-11-26test(ngRepeat): add test for issue #1076Igor Minar
2012-10-31fix(select): select option with a label of 0 is not shownSudhir Jonathan
Bug caused by the use of the `||` operator to replace all non-truthy values with an empty string. Changed to replace only `undefined` values. Closes #1401
2012-09-11fix(ng-repeat) to work with primitive typesZhenbo Zhang
2012-09-06fix(FormController): propagate dirty state to parent formsKai Groner
2012-09-06fix(ngSrc): don't set src if value is empty stringXiangru Chen
Current implementation of ngSrc may lead to empty src attribute when page is loading. For example: <img ng-src="{{image.url}}"> can be temporarily rendered as <img src=""> before the image resource is loaded. Some browser emits a request to the current page when seeing <img src=""> (Firefox13 and IE8 will, Chromium20 won't), which leads to performance problems.
2012-09-06fix(ngClassEven/Odd): filtering/ordering and repeaterpetrovalex
Closes #1076
2012-09-06fix(ngClass): works with class interpolationMax Martinsson
Closes #1016
2012-08-31revert: fix(ng-repeat) to work with primitive typesIgor Minar
this commit was accidentaly merged. it needs more work and we don't have CLA signature This reverts commit 98d489712eff7559bce87ae53bd242112a875c1a.
2012-08-30fix(ng-repeat) to work with primitive typesZhenbo Zhang
2012-08-13fix(ngPluralize): fixes ng-pluralize when using non-standard start/end symbolsBrian Ford
Closes #1134
2012-08-13style(ngPluralizeSpec): fix indentationIgor Minar
2012-08-10fix(option): support option elements in datalistIgor Minar
previously we expected to find option elements only within select element and if that was not the case we throw an error. This made it impossible to include datalist element with nested option elements in the template. Closes #1165
2012-08-10fix(form): prevent page reload when form destroyedIgor Minar
this fix ensures that we prevent the default action on form submission (full page reload) even in cases when the form is being destroyed as a result of the submit event handler (e.g. when route change is triggered). The fix is more complicated than I'd like it to be mainly because we need to ensure that we don't create circular references between js closures and dom elements via DOM event handlers that would then result in a memory leak. Also the differences between IE8, IE9 and normal browsers make testing this ugly. Closes #1238
2012-08-10test(form): fix broken preventDefault testIgor Minar
the original test relied on incorrect assumptions about how jasmine async tests work (when setTimeout is triggered) and how browser reloads a page (the sequence of events) and thus the test passes even when the default is not prevented. this change fixes the test by registering an extra submit event handler that checks if the default was prevented. if the default was not prevented, the test will fail and the page will be reloaded causing the test runner to panic.
2012-08-10refactor(formSpec): group preventDefault specs into a describeIgor Minar
2012-06-08feat($compile): simplify isolate scope bindingsMisko Hevery
Changed the isolate scope binding options to: - @attr - attribute binding (including interpolation) - =model - by-directional model binding - &expr - expression execution binding This change simplifies the terminology as well as number of choices available to the developer. It also supports local name aliasing from the parent. BREAKING CHANGE: isolate scope bindings definition has changed and the inject option for the directive controller injection was removed. To migrate the code follow the example below: Before: scope: { myAttr: 'attribute', myBind: 'bind', myExpression: 'expression', myEval: 'evaluate', myAccessor: 'accessor' } After: scope: { myAttr: '@', myBind: '@', myExpression: '&', // myEval - usually not useful, but in cases where the expression is assignable, you can use '=' myAccessor: '=' // in directive's template change myAccessor() to myAccessor } The removed `inject` wasn't generaly useful for directives so there should be no code using it.
2012-06-02doc(NgModelController) add example and $render documentationMisko Hevery
Closes#930
2012-06-01feat($route): rename template -> tempalteUrl and add support for inline ↵Misko Hevery
templates BREAKING CHANGE: template in $route definition is now templateUrl To migrate just rename `template` to `templateUrl`.
2012-06-01chore($route): rename eventsMisko Hevery
BREAKING CHANGE rename $beforeRouteChange to $routeChangeStart rename $afterRouteChange to $routeChangeSuccess
2012-06-01feat($route): resolve local route promisesMisko Hevery
Resolve all promises on route before we fire $afterRouteChange which then renders the ngView.
2012-05-22fix(ngRepeat): expose $first, $middle and $last instead of $positionMax
$position marker doesn't work well in cases when we have just one item in the list because then the item is both the first and last. To solve this properly we need to expose individual $first and $middle and $last flags. BREAKING CHANGE: $position is not exposed in repeater scopes any more To update, search for $position and replace it with one of $first, $middle or $last. Closes #912
2012-05-06fix(ngSrc,ngHref): binding should set element prop as well as attrIgor Minar
IE9 ignores setAttribute('src', val) calls on img if "ng:src" attribute is present. It only fetches the image if element property is updated as well. Closes #935
2012-05-06fix(ngModel): use keydown/change events on IE9 instead of inputIgor Minar
On IE9 the input event is not fired when backspace or delete key are pressed or when cut is performed. This makes listening on the input event unreliable and therefore it's better for us to just use keydown/change events instead. Closes #879
2012-05-02fix(select): don't interfere with selection if not databoundIgor Minar
Closes #926
2012-04-27feat($parse): CSP compatibilityIgor Minar
CSP (content security policy) forbids apps to use eval or Function(string) generated functions (among other things). For us to be compatible, we just need to implement the "getterFn" in $parse without violating any of these restrictions. We currently use Function(string) generated functions as a speed optimization. With this change, it will be possible to opt into the CSP compatible mode using the ngCsp directive. When this mode is on Angular will evaluate all expressions up to 30% slower than in non-CSP mode, but no security violations will be raised. In order to use this feature put ngCsp directive on the root element of the application. For example: <!doctype html> <html ng-app ng-csp> ... ... </html> Closes #893
2012-04-20fix(select): properly handle empty & unknown options without ngOptionsIgor Minar
Previously only when ngOptions was used, we correctly handled situations when model was set to an unknown value. With this change, we'll add/remove extra unknown option or reuse an existing empty option (option with value set to "") when model is undefined.
2012-04-20test(selectSpec): clean up and simplify specsIgor Minar
2012-04-20fix(script): Incorrectly reading script text on ieMisko Hevery
IE deals with script tags in special way and .text() does not work. Reading the .text property directly fixes the issue.
2012-04-11fix(input.radio): support 2-way binding in a repeaterVojta Jina
Closes #869
2012-04-11chore(ngSanitize): extract $sanitize, ngBindHtml, linkyFilter into a moduleVojta Jina
Create build for other modules as well (ngResource, ngCookies): - wrap into a function - add license - add version Breaks `$sanitize` service, `ngBindHtml` directive and `linky` filter were moved to the `ngSanitize` module. Apps that depend on any of these will need to load `angular-sanitize.js` and include `ngSanitize` in their dependency list: `var myApp = angular.module('myApp', ['ngSanitize']);`
2012-04-09chore(ngBind): remove obsolete testIgor Minar
this test is not testing what it claims it is. we don't need it any more
2012-04-09chore(tests): rename all directive names to the normalized formIgor Minar
2012-04-09fix(ngBindHtml): clear contents when model is falsyIgor Minar
Closes #864
2012-04-09test(ngBindSpec): correct tests + split them upIgor Minar
2012-04-09fix(docs): change all directive references to use the normalized namesIgor Minar
2012-04-04refactor(ngHref, ngSrc): remove duplicate testsVojta Jina
2012-04-04chore(directive): correct file names for booleanAttrsVojta Jina
2012-04-04refactor(ngInclude): correct the testsVojta Jina
2012-04-04fix(booleanAttrs): convert to booleanVojta Jina
jQuery's attr() does not handle 0 as false, when it comes to boolean attrs.
2012-04-03fix(form): preperly clean up when invalid widget is removedMisko Hevery
Removing invalid widget sometimes resulted in improper cleanup of the form state.
2012-04-03fix(ng-href): copy even if no bindingMisko Hevery
Closes# 850 fixed an issue where ng-href would not copy its content into href if it did not contain binding.
2012-04-03refactor(ngView): remove extra $watch, refactor one ugly testVojta Jina