Vojta Jina
08bfea183a
fix(forms): Set ng-valid/ng-invalid correctly
2012-03-16 12:06:29 -07:00
Igor Minar
f13dd3393d
feat(injector): infer _foo_ as foo
...
this is to enable nicer tests:
describe('fooSvc', function() {
var fooSvc;
beforeEach(inject(function(_fooSvc_) {
fooSvc = _fooSvc_;
}));
it('should do this thing', function() {
//test fooSvc
});
});
2012-03-16 10:52:40 -07:00
Igor Minar
bca96e7c7c
style(ngViewSpec): pretify some tests with $destroy events
2012-03-16 10:52:40 -07:00
Igor Minar
9b1aff905b
feat(scope): broadcast $destroy event on scope destruction
...
perf testing shows that in chrome this change adds 5-15% overhead
when destroying 10k nested scopes where each scope has a $destroy listener
2012-03-16 09:41:05 -07:00
Igor Minar
252d4548f9
style(ngSwitchSpec): fix typo
2012-03-15 15:23:49 -07:00
Igor Minar
2315d9b361
fix(ng-switch): properly destroy child scopes
2012-03-14 14:33:20 -07:00
Vojta Jina
13f31602f3
feat(ng-list): Allow custom separator
2012-03-13 17:51:05 -07:00
Misko Hevery
e9e3ee012b
feat(compile): allow ngForm on attribute and class
...
#feature
- ngForm directive can now be used with element, class, and attributes
2012-03-13 16:59:10 -07:00
Misko Hevery
de9464c143
f(compile): boolean attributes too agresive
...
- compiler would rewrite boolean attributes on all elements. This is too aggressive and interferes with some third-party frameworks
2012-03-13 16:59:03 -07:00
Misko Hevery
31cd580310
fix(ng-non-bindable): increase priority to 1000
...
- increase ng-non-bindable prioirity to 1000 so that it prevents attribute interpolation on same level.
2012-03-13 16:58:36 -07:00
Misko Hevery
d34f3bc7a6
feat(form): publish validationErrorKeys as CSS
...
- The validationErrorKeys are now published as CSS for easy styling. The errorKeys should be in
camelCase and the CSS will be in snake-case
2012-03-13 16:57:36 -07:00
Igor Minar
4806d28a29
fix(forms): remove control.$form and use nullFormCtrl
2012-03-13 16:05:52 -07:00
Igor Minar
089c0f8b0e
fix(forms): fix nesting issues and add tests
2012-03-13 16:05:52 -07:00
Igor Minar
9277d12fc0
fix(forms): lowercase all validation error keys
2012-03-13 14:13:53 -07:00
Igor Minar
ac5151a469
fix(scope): remove scope $destroy event
2012-03-13 14:13:53 -07:00
Igor Minar
f59e4b11f1
fix(forms): prefix all form and control properties with $
2012-03-12 23:04:11 -07:00
Igor Minar
5e6ba25201
fix(forms): remove the need for extra form scope
...
the forms/controls code refactored not to depend on events which forced
us to create new scope for each form element.
2012-03-12 23:04:11 -07:00
Igor Minar
9134f5ce5a
style(ng-include): remove unused args
2012-03-12 23:04:11 -07:00
Igor Minar
4e6b065a2f
test(ng-include): add ng-include=src test
2012-03-12 23:04:11 -07:00
Misko Hevery
48096048cf
fix(svg): normalize class access for SVG
2012-03-12 21:59:50 -07:00
Vojta Jina
1b9277bf6f
fix(forms): Propagate change from model even if it's undefined
2012-03-12 01:40:12 -07:00
Misko Hevery
cce31d4c93
chore(ng-include): update to work in ng-include|src mode
2012-03-11 22:36:29 -07:00
Vojta Jina
716dd5f3f9
refactor(forms): Remove touch() method
2012-03-09 17:33:22 -08:00
Vojta Jina
83314913e7
refactor(forms): Rename read() -> setViewValue()
2012-03-09 17:33:22 -08:00
Igor Minar
4a94bb9b34
fix(startTag): fix tagname extraction
...
the original code magically worked for ng:foo but for nothing else
2012-03-09 16:27:12 -08:00
Igor Minar
f4d338d393
chore(*): refactor all ng: to ng-
2012-03-09 16:14:26 -08:00
Vojta Jina
0bfaa579c0
feat($provide.service): Add $provide.service() for registering a class
2012-03-09 10:10:29 -08:00
Vojta Jina
00d4427388
refactor($provide) Rename service -> provider
...
It registers a provider class, so this makes more sense.
Breaks Rename $provide.service -> $provide.provider
2012-03-09 10:10:28 -08:00
Vojta Jina
e0c9551fd7
refactor(forms): remove registerWidget and use event instead
...
Each widget (ng-model directive) emits $newFormControl event instead of getting hold of parent form
and calling form.registerWidget(this);
2012-03-09 10:10:28 -08:00
Igor Minar
5d09a1efd3
fix(ng-view, ng-include): onload and $contentLoaded
...
- change custom onload directive to special arguments recongnized by both
ng-view and ng-include
- rename $contentLoaded event to $viewContentLoaded and $includeContentLoaded
- add event docs
2012-03-08 22:29:35 -08:00
Igor Minar
f54db2ccda
chore(directives,widgets): reorg the code under directive/ dir
2012-03-08 22:29:34 -08:00
Misko Hevery
dd7b0f56fc
fix(ng-cloak): work with class
2012-03-08 16:30:39 -08:00
Vojta Jina
b3750103cc
fix($parse): Allow property names that collide with native object properties
...
I.e. constructor, toString, or watch on FF
(https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/watch )
+ optimize parser a bit to not create getter function for operators
2012-03-08 11:39:03 -08:00
Igor Minar
ee7209fe26
fix(tests): fix name collisions between various tests
2012-03-08 11:06:15 -08:00
Igor Minar
af21233820
fix(test): rename an it so that it doesn't colide with the test above
2012-03-08 11:06:14 -08:00
Igor Minar
e0ace15cd3
docs($rootScope): rename ttl to digestTtl + docs
2012-03-08 11:01:22 -08:00
Misko Hevery
6a98c52c84
chore(compiler): change default restriction to attribute only for directives
2012-03-08 10:07:49 -08:00
Vojta Jina
c2989f6cc6
fix(ng-include): Compile only content
2012-03-05 10:41:59 -08:00
Vojta Jina
4f797fe5f3
refactor(testabilityPatch): Change JSTD fail to more general throw
...
"fail" is a JSTD specific API, so it's not defined when testing without JSTD (eg SlimJim).
2012-03-05 10:41:51 -08:00
Vojta Jina
4370d756e4
refactor(directive.ngModel): rename emitValidity -> setValidity
2012-02-28 18:22:41 -08:00
Vojta Jina
4e83399570
fix(ng:model-instant): defer only keydown, throttle setTimeouts
2012-02-28 18:22:41 -08:00
Vojta Jina
e7d6106811
fix(input): Render 0 (number) as 0 (not empty string)
2012-02-28 18:22:41 -08:00
Vojta Jina
c4c60c25b4
reafactor: Rename ng:bind-immediate -> ng:model-instant
2012-02-28 18:22:41 -08:00
Vojta Jina
60743fc52a
feat(ng:include) Fire $contentLoaded event
...
+ refactor unload to listen on this event -> we can use unload with ng:view as well
Closes #743
2012-02-28 17:48:07 -08:00
Vojta Jina
9486590e1b
refactor(ng:view) Make $route scope agnostic, add $contentLoaded event
...
Problems:
- controller was instantiated immediately on $afterRouteChange (even if no content), that's
different compare to ng:controller, which instantiates controllers after compiling
- route listened on current scope ($afterRouteChange), so if you were listening on $rootScope
($afterRouteChange), you get called first and current.scope === undefined, which is flaky
- route handles scope destroying, but scope is created by ng:view
- route fires after/before route change even if there is no route (when no otherwise specified)
Solution:
- route has no idea about scope, whole scope business moved to ng:view (creating/destroying)
- scope is created (and controller instantiated) AFTER compiling the content
- that means on $afterRouteChange - there is no scope yet (current.scope === undefined)
- added $contentLoaded event fired by ng:view, after linking the content
2012-02-28 17:46:58 -08:00
Misko Hevery
e31d1c287d
refactor($route): remove .parent(); ng:view scope creation
2012-02-28 17:46:58 -08:00
Misko Hevery
f16bd2f747
refactor($route): move when/otherwise to provider
2012-02-28 17:46:58 -08:00
Vojta Jina
21c725f1a1
refactor(forms): Even better forms
...
- remove $formFactory completely
- remove parallel scope hierarchy (forms, widgets)
- use new compiler features (widgets, forms are controllers)
- any directive can add formatter/parser (validators, convertors)
Breaks no custom input types
Breaks removed integer input type
Breaks remove list input type (ng-list directive instead)
Breaks inputs bind only blur event by default (added ng:bind-change directive)
2012-02-28 17:46:58 -08:00
Vojta Jina
d656d11489
feat(directive.style): Do not compile content of style element
2012-02-28 17:41:30 -08:00
Vojta Jina
4c1c50fd9b
fix(directive.script): Do not compile content of script tags
2012-02-28 14:15:44 -08:00