aboutsummaryrefslogtreecommitdiffstats
path: root/src/ng/compile.js
AgeCommit message (Collapse)Author
2012-10-29fix($compile): don't look for class directives in empty stringIgor Minar
if className is undefined or empty string, don't bother looking for directives in there
2012-10-29fix($compile): compilation should not recurse into empty nodesIgor Minar
if a node doesn't have children then don't try to compile these non-existent children
2012-10-29style($compile): better fn names for debuggingIgor Minar
2012-10-29refactor(): simplify nodeLinkFnIgor Minar
2012-10-29fix($compile): prevent double attr interpolation w/ templateUrlIgor Minar
This fixes the issue that caused two attr interpolation observers to be registered for the same attribute as a result of isolate scope definition with attr (@) property for this attribute. Duplicate observers would then fight with each other updating the model. The issue occured only when this directive was used in a repeater because that's when we clone the template node which caused the two observers to point to two different sets of $attr instances. Closes #1166, #836
2012-09-20fix($compile): reference local in isolate scopeVojta Jina
This was really corner case: Watcher needs to return changed value, to notify that model might have changed and one more $digest cycle needs to be performed. The watcher, that takes care of reference binding into an isolate scope ("="), did not return changed value, if the change was from the isolate scope to the parent. If any other watcher returned change, it worked fine, as this change caused re-digest. Closes #1272
2012-09-06fix(*): name all anonymous watch functions in AngularShyam Seshadri
This will allow us to see function names in Batarang and debugger. Closes #1119
2012-08-30fix(jqLite): better support for xhtmlIgor Minar
it turns out that some stuff doesn't work in xhtml as it does in html. for example   can't be innerHTML-ed and auto-closing of elements doesn't work. the reporter of the referenced issue claimed that innerHTML vs text on script made a difference but that doesn't appear to be true in my testing. I'm not including test for this because testacular doesn't currently run tests in xhtml yet. Closes #1301
2012-08-13fix($compile): denormalize directive templatesIgor Minar
Since developers are allowed to customize start/end interpolation strings, but third-party directive creators don't know about these customizations, we should standardize on {{ }} in templates of reusable (third-party) directives. During the compilation, these templates are then denormalized to use whatever the custom start/end symbol is, effectively translating the template into the syntax of the runtime environment. This addresses an issue raised at http://goo.gl/e8VPV Existing code should not be affected by this change since project that do use custom interpolation markers are not expected to use {{ }} in existing directive templates.
2012-08-13refactor($compile): code cleanupIgor Minar
2012-08-12docs($compileProvider): remove duplicate of .directive()Vojta Jina
2012-08-12docs: fix broken links to $compileProvider.directive()Vojta Jina
2012-06-12docs(*): simplify doc urlsIgor Minar
we now have two types of namespaces: - true namespace: angular.* - used for all global apis - virtual namespace: ng.*, ngMock.*, ... - used for all DI modules the virual namespaces have services under the second namespace level (e.g. ng.) and filters and directives prefixed with filter: and directive: respectively (e.g. ng.filter:orderBy, ng.directive:ngRepeat) this simplifies urls and makes them a lot shorter while still avoiding name collisions
2012-06-08fix($compile): correctly merge class attr for replace directivesMax Martinsson
Merging of interpolated class attribute from directive template with replace:true works Closes #1006
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-08refactor($compile): always call attr.$observeMisko Hevery
attr.$observe used to call function only if there was interpolation on that attribute. We now call the observation function all the time but we only save the reference to it if interpolation is present.
2012-06-08chore(jqLite): performance reorderingMisko Hevery
2012-06-02doc(ngdoc): clean up doc generation and add missing documentation linksMisko Hevery
2012-05-04fix($compile): have $observe return registration functionMisko Hevery
2012-05-04fix($compile): ignore ws when checking if template has single rootIgor Minar
Also add the same error checking for sync templates. Closes #910
2012-05-03style($compile): rename orig*Node to beforeTemplate*NodeIgor Minar
2012-05-03fix($compile): fix replaceWithIgor Minar
the old implementation didn't reattach jquery/jqlite data which caused things like to be lost I tried various implementations but it appears that by reattaching the data to the new node by copying the expando property is the most reliable of all.
2012-05-03style($compile): clean up the code and normalize fn namesIgor Minar
2012-05-03fix($compile): attach scope to the directive element when templateUrl and ↵Igor Minar
replace=true We forgot to reattach the scope to the replacement element. This affected only directives that had templateUrl and replace:true properties. Reported on the mailing list: https://groups.google.com/forum/?fromgroups#!topic/angular/zwjLr1msS2Y http://jsfiddle.net/lukebayes/g9Sh9/
2012-05-03chore($compile): remove obsolete <<CONTENT>> transclusionIgor Minar
This stuff was never documented and is an accidental leftover from the time when the compiler was rewritten. If any code depends on this, it should be rewritten to use ngTransclude directive intead.
2012-05-03fix($compile): prevent duplicate directive controller instantiationIgor Minar
Closes #876
2012-05-02style($compile): rename compiler.js to compile.jsIgor Minar