aboutsummaryrefslogtreecommitdiffstats
path: root/src/ng
AgeCommit message (Collapse)Author
2013-10-26docs(http): add missing brace in the 2nd interceptors examplemgechev
Closes #4621
2013-10-26docs(ngForm): ensure correct attribute name in usage exampleDavid Bennett
Closes #4611
2013-10-25docs($rootScope): added $eval `locals` parameter documentationCaio Cunha
Added documentation for `locals` parameter of `$eval` method.
2013-10-25fix($compile): attribute bindings should not break due to terminal directivesIgor Minar
Recently we changed the priority of attribute interpolation directive to -100 to ensure that it executes early in the post linking phase. This causes issues with when terminal directives are placed on elements with attribute bindings because the terminal directive will usually have 0 or higher priority which results in attr interpolation directive not being applied to the element. To fix this issue I'm switching the priority back to 100 and making moving the binding setup into the pre-linking function. This means that: - terminal directives with priority lower than 100 will not affect the attribute binding - if a directive wants to add or alter bindings it can do so in the pre-linking phase, as long as the priority of this directive is more than 100 - all post-linking functions will execute after the attribute binding has been set up - all pre-linking functions with directive priority lower than 100 will execute after the attribute bindings have been setup BREAKING CHANGE: the attribute interpolation (binding) executes as a directive with priority 100 and the binding is set up in the pre-linking phase. It used to be that the priority was -100 in rc.2 (100 before rc.2) and that the binding was setup in the post-linking phase. Closes #4525 Closes #4528 Closes #4649
2013-10-25docs(compile): fix typo in 'Attributes' descriptionBrainCrumbz
Closes #4589
2013-10-25docs(ngIf): fix typoBalázs Suhajda
Closes #4512
2013-10-24docs(ngClass): fix typoSam Dornan
Closes #4471
2013-10-24docs(rootScope): add example of using a listener function for $watchWesley Cho
Closes #4451
2013-10-24docs(ngModelController): $parent can help isolate scope directivesbasarat
2013-10-24docs(select): fix typowiebl
Closes #4433
2013-10-24docs(ngBindHtml): add exampleNicolas Brugneaux
Closes #4427
2013-10-24fix($compile): instantiate controlers when re-entering compilationIgor Minar
When we re-enter compilation either due to async directive templates or element transclude directive we need to keep track of controllers to instantiate during linking. This piece of info was missing when re-entering compilation and that's what this commit fixes. I also reordered the properties in the previousCompileContext object. Closes #4434 Closes #4616
2013-10-24docs(ngNonBindable): fix punctuationDave Peticolas
Closes #4424
2013-10-24docs(ngController): do not attach a controller twiceTyler McGinnis
A common mistake for beginners is to attach a controller in both the $routeProvider and also in the html document using the ng-controller directive. This change highlights this, to help prevent developers from doing so in the future. Closes #4409
2013-10-24fix(input): keep track of min/max attars on-the-flyDmitry Shirokov
Now input[type=button] keeps track of both min and max attrs even if they change over time.
2013-10-23docs(guide/directive,guide/compiler,): drastically improveBrian Ford
2013-10-22style: make jshint happyVojta Jina
2013-10-22fix: don't inline css in csp mode.tigbro
Also add `angular-csp.css` to the resulting build.
2013-10-21docs(ngCsp): pretty-format docsIgor Minar
2013-10-18fix(csp): fix csp auto-detection and stylesheet injectionIgor Minar
When we refactored , we broke the csp mode because the previous implementation relied on the fact that it was ok to lazy initialize the .csp property, this is not the case any more. Besides, we need to know about csp mode during bootstrap and avoid injecting the stylesheet when csp is active, so I refactored the code to fix both issues. PR #4411 will follow up on this commit and add more improvements. Closes #917 Closes #2963 Closes #4394 Closes #4444 BREAKING CHANGE: triggering ngCsp directive via `ng:csp` attribute is not supported any more. Please use data-ng-csp instead.
2013-10-18docs: correct broken linksVojta Jina
This also contains some whitespace corrections by my editor.
2013-10-15docs($rootScope): better document infinite digest and ttlIgor Minar
2013-10-15fix($parse): check function call context to be safeChirayu Krishnappa
Closes #4417
2013-10-14docs: add missing priority documentation for structural directivesIgor Minar
2013-10-14docs(ngInit): fix typoTyler McGinnis
Closes #4384
2013-10-14docs(ngNonBindable): improve descriptionPete Bacon Darwin
Closes #4391
2013-10-14docs(booleanAttrs): improve grammar and clarityDave Peticolas
Closes #4392
2013-10-11fix($compile): abort compilation when duplicate element transclusionIgor Minar
Issue an error and abort compilation when two directives that ask for transclusion are found on a single element. This configuration is not supported and we previously failed to issue the error because in the case of element transclusion the compilation is re-started and this caused the compilation context to be lost. The ngRepeat directive has been special-cased to bypass this warning because it knows how to handle this scenario internally. This is not an ideal solution to the problem of multiple transclusions per element, we are hoping to have this configuration supported by the compiler in the future. See #4357. Closes #3893 Closes #4217 Closes #3307
2013-10-11fix(directives): correct priority of structural directivesIgor Minar
BREAKING CHANGE: the priority of ngRepeat, ngSwitchWhen, ngIf, ngInclude and ngView has changed. This could affect directives that explicitly specify their priority. In order to make ngRepeat, ngSwitchWhen, ngIf, ngInclude and ngView work together in all common scenarios their directives are being adjusted to achieve the following precendence: Directive | Old Priority | New Priority ============================================= ngRepeat | 1000 | 1000 --------------------------------------------- ngSwitchWhen | 500 | 800 --------------------------------------------- ngIf | 1000 | 600 --------------------------------------------- ngInclude/ngView | 1000 | 400
2013-10-11fix($compile): make order directives w/ same priority deterministicIgor Minar
Array.prototype.sort is speced out to be as potentionally unstable sort, which is how it's implemented in FF and IE. This has caused the order of directives with the same priority to vary between browsers. For consistency sake, we now consider directive name and registration, order when determining the order of directives with the same priority. Note: it is still possible to get into a situation when the directive order is underministic - when source files are loaded asynchronously in non-deterministic order and there are are directives registered with the same name and priority, the order in which they will be applied will depend on the file load order.
2013-10-11style: strip white space from filesIgor Minar
2013-10-11chore($compile): remove dead codeIgor Minar
2013-10-11docs(ngAnimate): fix typosHack Reactor Students
Closes #4375
2013-10-10docs(ngInit): add note on best practicesBrian Ford
2013-10-10refactor(location): $location now uses urlUtils, not RegExJeff Cross
The location service, and other portions of the application, were relying on a complicated regular expression to get parts of a URL. But there is already a private urlUtils provider, which relies on HTMLAnchorElement to provide this information, and is suitable for most cases. In order to make urlUtils more accessible in the absence of DI, its methods were converted to standalone functions available globally. The urlUtils.resolve method was renamed urlResolve, and was refactored to only take 1 argument, url, and not the 2nd "parse" boolean. The method now always returns a parsed url. All places in code which previously wanted a string instead of a parsed url can now get the value from the href property of the returned object. Tests were also added to ensure IPv6 addresses were handled correctly. Closes #3533 Closes #2950 Closes #3249
2013-10-09feat(ngRepeat): use block separator commentsjankuca
Issue: multi-elements ng-repeat (ng-repeat-start, ng-repeat-end) can contain elements with a trancluding directive. This directive changes content of the row (template) and ng-repeat does not work correctly (when removing/moving rows), because ng-repeat works with the original template (elements). This changes ng-repeat behavior to traverse the DOM to find current elements everytime we are moving/removing rows (if the template has multiple elements). Closes #3104
2013-10-09revert: fix($parse): handle promises returned from parsed function callsIgor Minar
This reverts commit 3a65822023119b71deab5e298c7ef2de204caa13. The change cased regressions in third party components that require promises from getter functions not to be unwrapped. Since we have deprecated the promise unwrapping support in $parse it doesn't make much sense to fix this issue and deal with regressions in third party code. Closes #4158
2013-10-09fix($parse): deprecate promise unwrapping and make it an opt-inIgor Minar
This commit disables promise unwrapping and adds $parseProvider.unwrapPromises() getter/setter api that allows developers to turn the feature back on if needed. Promise unwrapping support will be removed from Angular in the future and this setting only allows for enabling it during transitional period. If the unwrapping is enabled, Angular will log a warning about each expression that unwraps a promise (to reduce the noise, each expression is logged only onces). To disable this logging use `$parseProvider.logPromiseWarnings(false)`. Previously promises found anywhere in the expression during expression evaluation would evaluate to undefined while unresolved and to the fulfillment value if fulfilled. This is a feature that didn't prove to be wildly useful or popular, primarily because of the dichotomy between data access in templates (accessed as raw values) and controller code (accessed as promises). In most code we ended up resolving promises manually in controllers or automatically via routing and unifying the model access in this way. Other downsides of automatic promise unwrapping: - when building components it's often desirable to receive the raw promises - adds complexity and slows down expression evaluation - makes expression code pre-generation unattractive due to the amount of code that needs to be generated - makes IDE auto-completion and tool support hard - adds too much magic BREAKING CHANGE: $parse and templates in general will no longer automatically unwrap promises. This feature has been deprecated and if absolutely needed, it can be reenabled during transitional period via `$parseProvider.unwrapPromises(true)` api. Closes #4158 Closes #4270
2013-10-09docs($anchorScroll): fix example controller and styleBen Lesh
Changed controller name in example html to ScrollCtrl to match name in example js. Add styling to example html so scrollable area is not obtrusive to documentation page design. Closes #3898
2013-10-09docs($log): explain how to configure debug loggingHenry Hazan
Closes #4348
2013-10-07fix(input): `false` is no longer an empty value by defaultPete Bacon Darwin
`checkboxInputType` and `ngList` directives need to have special logic for whether they are empty or not. Previously this had been hard coded into their own directives or the `ngRequired` directive. This made it difficult to handle these special cases. This change factors out the question of whether an input is empty into a method `$isEmpty` on the `ngModelController`. The `ngRequired` directive now uses this method when testing for validity and directives, such as `checkbox` or `ngList` can override it to apply logic specific to their needs. Closes #3490, #3658, #2594
2013-10-07feat($interval): add a service wrapping setIntervalJulie
The $interval service simplifies creating and testing recurring tasks. This service does not increment $browser's outstanding request count, which means that scenario tests and Protractor tests will not timeout when a site uses a polling function registered by $interval. Provides a workaround for #2402. For unit tests, repeated tasks can be controlled using ngMock$interval's tick(), tickNext(), and tickAll() functions.
2013-10-07revert: refactor($parse): only instantiate lex/parse onceIgor Minar
This reverts commit 281feba4caffd14ffbd6dedfb95ad6415cff8483. Since Lexer and Parser objects are stateful it is not safe to reuse them for parsing of multiple expressions. After recent refactoring into prototypical style, the instantiation of these objects is so cheap that it's not a huge win to use singletons here.
2013-10-07fix(*): protect calls to hasOwnProperty in public APIPeter Bacon Darwin
Objects received from outside AngularJS may have had their `hasOwnProperty` method overridden with something else. In cases where we can do this without incurring a performance penalty we call directly on Object.prototype.hasOwnProperty to ensure that we use the correct method. Also, we have some internal hash objects, where the keys for the map are provided from outside AngularJS. In such cases we either prevent `hasOwnProperty` from being used as a key or provide some other way of preventing our objects from having their `hasOwnProperty` overridden. BREAKING CHANGE: Inputs with name equal to "hasOwnProperty" are not allowed inside form or ngForm directives. Before, inputs whose name was "hasOwnProperty" were quietly ignored and not added to the scope. Now a badname exception is thrown. Using "hasOwnProperty" for an input name would be very unusual and bad practice. Either do not include such an input in a `form` or `ngForm` directive or change the name of the input. Closes #3331
2013-10-07style(select): fix semicolons and varsPeter Bacon Darwin
2013-10-07docs(ngModel): fix grammar and improve clarityDave Peticolas
Closes #4291
2013-10-07refactor($parse): only instantiate lex/parse oncePeter Bacon Darwin
Closes #4286
2013-10-07docs(ngValue): add docs for ngValue directiveBrian Ford
Closes #4267
2013-10-05fix(rootScope): make stopPropagation only stop its own eventPete Bacon Darwin
All sibling event handlers residing on the same scope to were stopped if one of them called stopPropagation. Closes #4204
2013-10-05docs(a): change model.$save() into something less deceptiveMichiel Staessen
Closes #4215