aboutsummaryrefslogtreecommitdiffstats
path: root/src/directives.js
AgeCommit message (Collapse)Author
2011-09-01docs(ng:bind): fix example codeIgor Minar
2011-09-01fix(ng:class): make ng:class friendly towards other code adding/removing classesIgor Minar
ng:class as well as ng:class-odd and ng:class-even always reset the class list to whatever it was before compilation, this makes it impossible to create another directive which adds its own classes on the element on which ng:class was applied. the fix simply removes all classes that were added previously by ng:class and add classes that the ng:class expression evaluates to. we can now guarantee that we won't clobber stuff added before or after compilation as long as all class names are unique. in order to implement this I had to beef up jqLite#addClass and jqLite#removeClass to be able to add/remove multiple classes without creating duplicates.
2011-09-01docs(API): various api doc fixes from ToniIgor Minar
2011-08-24feat(ng:cloak): add ng:cloak directiveIgor Minar
2011-08-24doc(API): various API documentation improvementsToni Thompson
2011-08-15refactor(jqLite): remove jqLite show/hide supportIgor Minar
it turns out that even with our tricks, jqLite#show is not usable in practice and definitely not on par with jQuery. so rather than introducing half-baked apis which introduce issues, I'm removing them. I also removed show/hide uses from docs, since they are not needed. Breaks jqLite.hide/jqLite.show which are no longer available.
2011-08-15style(*): wrap all assignments in if statementsIgor Minar
we commonly assign stuff in if statments like this: if (variable = someFn()) { //do something with variable } This results in lint and IDE warnings (did you mean ==?). It is better to be explicit about our intention and wrap the assignement into parens: if ((variable = someFn())) { //do something with variable } Doing so suppresses warnings + is easier to understand the intention. I verified that the closure compiler strips the extra parens, so there is no byte overhead for this safety practice. We should use this style going forward...
2011-08-14fix(directives): make ng:class-even/odd work with ng:classDi Peng
Closes #508
2011-08-12perf(scope): re-enable statement cacheingMisko Hevery
2011-08-12refactor(scope): remove $flush/$observe ng:eval/ng:eval-orderMisko Hevery
2011-08-02feat(scope): new and improved scope implementationMisko Hevery
- Speed improvements (about 4x on flush phase) - Memory improvements (uses no function closures) - Break $eval into $apply, $dispatch, $flush - Introduced $watch and $observe Breaks angular.equals() use === instead of == Breaks angular.scope() does not take parent as first argument Breaks scope.$watch() takes scope as first argument Breaks scope.$set(), scope.$get are removed Breaks scope.$config is removed Breaks $route.onChange callback has not "this" bounded
2011-07-30doc(typos): fix couple of typos in the docsdandoyon
Minor documentation fixes. Should not be any code changes. One test changed due to dependency on text in documentation.
2011-07-26fix(ng:show/ng:hide): use jqLite.show/jqLite.hideDi Peng
The previous implementation didn't handle situation when in css something was hidden with a cascaded display:none rule and then we wanted to show it. Unfortunatelly our test doesn't test this scenario because it's too complicated. :-/
2011-07-19Revert "fix(ng:class): preserve classes added post compilation"Igor Minar
This reverts commit 2428907259fa80ec3b1b4bfd85ea20028a9f4fa5. We decided to revert this because it is not bullet proof. The issue is that we can't reliably have both angular and non-angular code in charge of the DOM. We could work around some issues here and there, but we can't do it reliably, so it's better not to support DOM manipulation that happens outside of angular. There is a good chance that once we integrate with MDVs our possition will change, but until then our position is that only angular or angular widgets/directives can change change DOM that was compiled.
2011-07-18feat(strict mode): adding strict mode flag to all js filesIgor Minar
the flag must be in all src and test files so that we get the benefit of running in the strict mode even in jstd the following script was used to modify all files: for file in `find src test -name "*.js"`; do echo -e "'use strict';\n" > temp.txt cat $file >> temp.txt mv temp.txt $file done
2011-07-18doc(misc): fixing typos in docsIgor Minar
2011-07-17refactor(docs): run e2e tests with and without jqueryDi Peng
- e2e tests will run index.html (without jquery) and with index-jq.html(with jquery). - many small changes to make e2e tests work withough JQuery as we discover problems that were previously hidden by using real JQuery.
2011-07-13fix(ng:class): preserve classes added post compilationDi Peng
- make sure ng:class preserve classes added after compilation Closes #355
2011-06-16Added ng:disabled, ng:checked, ng:multiple, ng:readonly, ng:selected to ↵Di Peng
markup.js. Also added coresponding descriptions live examples and tests for each directive to be displayed on the website. Closes #351
2011-06-08Added ng:options directiveMisko Hevery
Closes #301
2011-06-08Refactor injector to have invoke method for speed reasonsMisko Hevery
2011-06-06yet another docs batchIgor Minar
2011-06-06api doc fixes from kenIgor Minar
2011-06-06Fix wrong links in source codeVojta Jina
2011-06-06fixing broken linksIgor Minar
2011-04-11doc fix - ng:autobind, ng:controller and moreKenneth R. Culp
2011-03-26remove _null and _undefinedIgor Minar
they have no significant effect on minified and gziped size. in fact they make things worse. file | before | after removal ---------------------------------------- concat | 325415 | 325297 min | 62070 | 62161 min + gzip | 25187 | 25176 The bottom line is that we are getting 0.05% decrease in size after gzip without all of the hassle of using underscores everywhere.
2011-02-18Remove ng:watchMisko Hevery
Closes#143
2011-02-16reformated multiline trinary expressions to have a leading ?/:.Misko Hevery
2011-02-16Small spelling and grammar fixes in documentation.Anthony Lieuallen
2011-02-14docs - adding cross links from directives to guide.expressionIgor Minar
2011-02-07add description for ng:controller exampleIgor Minar
2011-02-01changed the documentation @example to use <doc:example>Misko Hevery
2011-01-20null and other falsy values should not be rendered in the viewIgor Minar
Closes #242
2011-01-14fixed select with ng:formatMisko Hevery
select (one/multiple) could not chose from a list of objects, since DOM requires string ids. Solved by adding index formatter, which exposed incorrect handling of formatters in select widgets.
2011-01-10Rename angular.foreach to angular.forEach to make the api consistent.Igor Minar
camelcase is used for other angular functions and forEach is also used by EcmaScript standard. - rename the internal as well as the external function name - tweak the implementation of the function so that it doesn't clober it self when we extend the angular object with an object that has a forEach property equal to this forEach function Closes #85
2011-01-07change to keydown from keyup; add delayed $updateViewMisko Hevery
- There was a perceived lag when typing do to the fact that we were listening on the keyup event instead of keydown. The issue with keydown is that we can not read the value of the input field. To solve this we schedule a defer call and perform the model update then. - To prevent calling $eval on root scope too many times as well as to prevent drowning the browser with too many updates we now call the $eval only after 25ms and any additional requests get ignored. The new update service is called $updateView
2010-12-02Closes #170. Corrected the behavior of select when options are ng:repeatedMisko Hevery
- Delete $postEval method, as it was a hack
2010-11-18add @workInProgress tag and mark all @ngdocs as work in progressIgor Minar
2010-11-18escape code in ng:bind-attr jsdocIgor Minar
2010-11-18move attribute widgets to widgets.js fileIgor Minar
- move @ng:repeat to widgets.js and its specs to widgetsSpecs.js - move @ng:non-bindable to widgets.js and its specs to widgetsSpecs.js - make widget.template suitable for attribute widgets - fix up the js docs for attribute widgets
2010-11-16Changed error handling so that better stack traces are displayed in the ↵Misko Hevery
ng-errors
2010-11-15added remaining directives and search box.Misko Hevery
2010-11-10Make ng:repeat expose $position.Igor Minar
- $position is a textual representation of the position of repeated item ('first', 'middle', 'last') - added specs for $index
2010-11-10added ng:switch-when-default; changed $watch to always fire on init. (may be ↵Misko Hevery
backward incompatible)
2010-11-10Added DirectivesMisko Hevery
2010-10-27Fix failing tests for ie, and mark elements as ng-widget, ng-directive, and ↵Misko Hevery
ng-binding
2010-10-26create HTML sanitizer to allow inclusion of untrusted HTML in safe manner.Misko Hevery
Sanitization works in two phases: 1) We parse the HTML into sax-like events (start, end, chars). HTML parsing is very complex, and so it may very well be that what most browser consider valid HTML may not pares properly here, but we do best effort. We treat this parser as untrusted. 2) We have safe sanitizeWriter which treats its input (start, end, chars) as untrusted content and escapes everything. It only allows elements in the whitelist and only allows attributes which are whitelisted. Any attribute value must not start with 'javascript:'. This check is performed after escaping for entity (&xAB; etc..) and ignoring any whitespace. - Correct linky filter to use safeHtmlWriter - Correct html filter to use safeHtmlWriter Close #33; Close #34
2010-10-23adding ng:submit directive for use with formsIgor Minar
- allows for binding angular expressions to onsubmit events - prevent default submit action (page reload)
2010-10-23simplifying ng:click specIgor Minar