Vojta Jina
6d0ca95fa0
feat($compiler): Allow attr.$observe() interpolated attrs
2012-02-21 22:46:01 -08:00
Misko Hevery
3df7b8e57f
fix(ng:repeat): use transclusion
2012-02-21 22:46:01 -08:00
Misko Hevery
7bd69d0f5b
chore(ng:switch): rewritten with transclusion API
...
BREAKING CHANGE: the change event fires on scope of switch not on scope of case.
2012-02-21 22:46:01 -08:00
Misko Hevery
78656fe0df
feat($compile) add locals, isolate scope, transclusion
2012-02-21 22:46:00 -08:00
Misko Hevery
cb10ccc44f
feat($compile): mark scope creation with ng-scope class
2012-02-21 22:46:00 -08:00
Misko Hevery
4a051efb89
feat($compile): support compiling text nodes by wrapping them in <span>
2012-02-21 22:46:00 -08:00
Misko Hevery
1752c8c44a
feat(directive): event now accessible as $event
...
Closes 259
2012-02-21 22:46:00 -08:00
Misko Hevery
761b2ed85a
feat(parse): add support for local vars in expressions
2012-02-21 22:45:59 -08:00
Misko Hevery
c8ee631c19
feat(mouseenter/mouseleave): emulating ie events
2012-02-21 22:45:59 -08:00
Misko Hevery
85b2084f57
fix(select): double array issue with multislect and jQuery
2012-02-21 22:45:59 -08:00
Vojta Jina
6e635012fb
feat(scope): scope.$emit/$broadcast return the event object, add cancelled property
2012-02-21 10:58:48 -08:00
Misko Hevery
eb92735c9e
fix(injector) .instantiate([Type]) produced wrong result
2012-02-16 14:32:52 -08:00
Vojta Jina
776739299b
fix($injector): instantiate returns instance, if non-object value returned from constructor
2012-02-08 16:12:11 -08:00
Vojta Jina
6c4f1391bc
refactor(test): remove odd inject from describe
2012-01-30 11:44:19 -08:00
Vojta Jina
58d6da556a
refactor(binder): replace jested assertions with jasmine
2012-01-29 21:59:35 -08:00
Igor Minar
39b3297fc3
fix($parse): get rid of $unboundFn
...
Closes #731
2012-01-25 16:17:43 -08:00
Misko Hevery
4804c83b7d
docs(compiler): update the compiler docs
2012-01-25 11:53:59 -08:00
Misko Hevery
e2b1d9e994
feat(scriptTemplateLoader): provide template inlining
...
populates $templateCache with content of ng-template scripts
2012-01-25 11:50:37 -08:00
Misko Hevery
9ee2cdff44
refactor(directives): connect new compiler
...
- turn everything into a directive
2012-01-25 11:50:37 -08:00
Misko Hevery
8af4fde182
add($compile): add compiler v2.0 - not connected
2012-01-25 11:46:36 -08:00
Misko Hevery
5001c1a121
refactor($interpolate): improve interpolation service add documentation
2012-01-25 11:46:36 -08:00
Misko Hevery
1e258d11d0
feat(test): support it('should', pending);
2012-01-25 11:46:35 -08:00
Igor Minar
1e96d0af8c
fix(injector): small perf improvement & code cleanup
2012-01-25 11:46:35 -08:00
Misko Hevery
97dae0d0a0
feat(jqLite): add contents()
2012-01-25 11:46:35 -08:00
Misko Hevery
84823b2eff
feature($exceptionHandler): $exceptionHandler now supports var_args
2012-01-25 11:46:34 -08:00
Misko Hevery
517811764d
cleanup(tests): remove unused variables
2012-01-25 11:46:34 -08:00
Kai Groner
56bcc04c54
feat(ng:class): support using map of classnames and conditions
...
enables <div ng:class="{'hide': !visible, 'warning': isAlert()}"...
2012-01-24 10:28:29 -08:00
Igor Minar
7da2bdb82a
fix(scope): support watching functions
...
currently we run into infinite digest if a function is being
watched as an expression. This is because we generate bound
function wrapper when the watch is processed via parser.
I'm not too keen on the solution because it relies on the unbound
fn that is being exposed for other reasons, but I can't think
of a better way to deal with this right now
2012-01-23 22:33:28 -08:00
Igor Minar
ed78f0d830
chore(log): generic test log service with custom toEquals matcher
...
- any test that needs a logger can just inject provideLog
- logger has susict api that makes tests more readable
- custom toEquals matcher allows for pretty expectations
2012-01-23 22:33:28 -08:00
Vojta Jina
dbffbefb7c
refactor($controller): Add $controller service for instantiating controllers
...
So that we can allow user to override this service and use BC hack:
https://gist.github.com/1649788
2012-01-23 13:11:12 -08:00
Vojta Jina
0196411dbe
refactor(scope.$watch): rearrange arguments passed into watcher (newValue, oldValue, scope)
...
As scopes are injected into controllers now, you have the reference anyway, so having scope as first argument makes no sense…
Breaks $watcher gets arguments in different order (newValue, oldValue, scope)
2012-01-23 11:11:27 -08:00
Vojta Jina
992c790f07
refactor(scope): separate controller from scope
...
Controller is standalone object, created using "new" operator, not messed up with scope anymore.
Instead, related scope is injected as $scope.
See design proposal: https://docs.google.com/document/pub?id=1SsgVj17ec6tnZEX3ugsvg0rVVR11wTso5Md-RdEmC0k
Closes #321
Closes #425
Breaks controller methods are not exported to scope automatically
Breaks Scope#$new() does not take controller as argument anymore
2012-01-23 11:05:36 -08:00
Igor Minar
b587091b6e
feat(jqLite): added injector() helper method
2012-01-16 02:17:27 -08:00
Vojta Jina
c49b8a2db5
fix($location): do not $digest if browser's url change fired within $apply/$digest
...
Chrome (probably other browsers as well) fires 'hashchange' event synchronously, so if you change raw location from within $apply/$digest, we don't want to $apply twice. (It would throw an exception)
2012-01-14 11:23:12 -08:00
Misko Hevery
5cdfe45aa3
feat(module): add runtime block
2012-01-13 14:28:43 -08:00
Igor Minar
16a40c626f
style(*): small fixes
2012-01-13 14:28:21 -08:00
Igor Minar
b7f4d8c3c3
fix($http): anonnymous response interceptors should be treated as factories
2012-01-13 14:28:20 -08:00
Igor Minar
46691c2721
fix($http): remove support for PATCH + better whenXXX, expectXXX api
...
- there are too many unknowns about PATCH, so I'm dropping its support until we know that this is actually useful
- expectGET, expectHEAD and expectJSON (and the same for whenXXX) should not require response data to be specified
2012-01-13 13:53:07 -08:00
Vojta Jina
15fd735793
refactor($autoScroll): rename to $anchorScroll and allow disabling auto scrolling (links)
...
Now, that we have autoscroll attribute on ng:include, there is no reason to disable the service completely, so $anchorScrollProvider.disableAutoScrolling() means it won't be scrolling when $location.hash() changes.
And then, it's not $autoScroll at all, it actually scrolls to anchor when it's called, so I renamed
it to $anchorScroll.
2012-01-13 01:07:12 -08:00
Vojta Jina
985d3d7558
refactor($autoScroll): rename method in test + use $apply instead of $digest
2012-01-13 01:05:24 -08:00
Vojta Jina
249c89c091
fix($autoScroll): scroll even if $location is in html5 mode
...
+ use autoscroll in docs (ng:include)
2012-01-13 01:01:26 -08:00
Misko Hevery
d648d709f3
refactor(module): strict separation between module-config / app-runtime
2012-01-12 13:40:07 -08:00
Vojta Jina
28114de8dc
refactor(mock.$httpBackend): split (e2e/unit testing version of $httpBackend mock)
2012-01-11 22:11:01 -08:00
Vojta Jina
c6ea1be053
fix(mock.$httpBackend): resetExpectations should not create new array
2012-01-11 11:48:03 -08:00
Misko Hevery
5143e7bf06
feat(module): new module loader
2012-01-10 22:27:00 -08:00
Igor Minar
614fd3d55a
fix(ng:repeat): support repeating over array with null
...
typeof null == 'object', but it doesn't behave like an object
because its properties can't be dereferenced, so we need
to special-case it.
Closes #702
2012-01-10 22:21:53 -08:00
Igor Minar
7146f70636
fix($httpBackend): fix for jsonp requests
2012-01-09 14:38:32 -08:00
Igor Minar
67338ce061
feat($http): turn mock backend into a decorator + e2e testing support
...
- provider -> decorator
- autoflush + passThrough mode
- fix noop -> angular.noop
2012-01-09 13:17:48 -08:00
Igor Minar
23f8da7cbb
feat($http): expose req/resp headers to transform fns
2012-01-09 13:17:48 -08:00
Igor Minar
b911e303ec
feat($httpBackend): add expect/when shortcut methods
2012-01-09 13:17:48 -08:00
Igor Minar
a13b5ed3bc
fix($http): fix and cleanup $http and friends
...
$http:
- use promises internally
- get rid of XhrFuture that was previously used internally
- get rid of $browser.defer calls for async stuff (serving from cache),
promises will take care of asynchronicity
- fix transformation bugs (when caching requested + multiple request
pending + error is returned)
- get rid of native header parsing and instead just lazily parse the
header string
$httpBackend:
- don't return raw/mock XMLHttpRequest object (we don't use it for
anything anymore)
- call the callback with response headers string
mock $httpBackend:
- unify response api for expect and when
- call the callback with response headers string
- changed the expect/when failure error message so that EXPECTED and GOT
values are aligned
Conflicts:
src/service/http.js
test/service/compilerSpec.js
test/service/httpSpec.js
2012-01-09 13:17:48 -08:00
Igor Minar
63cca9afbc
feat(browser.defer): flush should throw exception when queue is empty
2012-01-09 13:17:48 -08:00
Vojta Jina
5c19766063
feat(ng:include): enable/disable scrolling through autoscroll attribute
2012-01-07 00:18:22 -08:00
Dhruv Manek
08029c7b72
fix(angular.copy): throw Error if source and destination are identical
...
Closes #693
2012-01-06 12:19:39 -08:00
Igor Minar
0bf611087b
feat(scope): throw exception when recursive $apply
2012-01-06 12:19:39 -08:00
Igor Minar
acb4338b70
style(widgetsSpec): ws, unused variables, etc
2012-01-06 12:19:39 -08:00
Igor Minar
cd9a7b9608
fix(ng:repeat): support repeating over array with null
...
typeof null == 'object', but it doesn't behave like an object
because its properties can't be dereferenced, so we need
to special-case it.
Closes #702
2012-01-06 12:19:39 -08:00
Igor Minar
9632f5c1c7
style(q): rename src/Deferred.js to src/service/q.js
2012-01-03 17:48:09 -08:00
Vojta Jina
6f91ffeb91
style: prefer single quotes + some whitespaces
2012-01-03 15:09:00 -08:00
Vojta Jina
c594f75b4c
refactor: remove old JSTD assertions
...
So that we can run the tests even without JSTD :-D
2012-01-03 15:09:00 -08:00
bartes
0c534644bc
fix(input): bind inputs to the 'input' event
...
The input event is fired on all non-ie browsers whenever the contents of an input
field changes. This means that we now support cut&paste via mouse which
was previously unsupported.
IE8 and older don't support this events and IE9 has a problematic
support for it, so we can't rely solely on this event and drop keydown
and change events.
2011-12-07 13:07:20 -08:00
Igor Minar
c28662d28d
fix(filter): remove the $ prefix from filter service ids
2011-12-07 13:07:19 -08:00
Igor Minar
b97c6e5f74
style(scopeSpec): clean up scopeSpec.js
2011-12-07 09:41:09 -08:00
Igor Minar
4e3c05b99e
feat(injector): add $provide.decorator
2011-12-07 09:41:08 -08:00
Igor Minar
5e4d59adf0
style(injector): cleanup of InjectorSpec.js
2011-12-07 09:41:07 -08:00
Igor Minar
fd38655e6c
fix(): use angular.callbacks namespace for jsonp callbacks
...
Previously we used to put callbacks on the window object, but that
causes problems on IE8 where it is not possible to delete properties
from the window object
2011-12-07 07:54:09 -08:00
Vojta Jina
b9001e9147
fix(route): $destroy scope after update and reload
...
When we update route (changing only search param, no route reload) and then reload (change to different
route), it did not $destroy last scope.
2011-12-06 13:35:05 -08:00
Vojta Jina
c9f2b1eec5
feat(form): do not prevent submission if action attribute present
2011-12-06 13:07:26 -08:00
Igor Minar
163e05ed36
feat($http): allow interceptors to be services
2011-12-05 23:53:26 -08:00
Igor Minar
bb2e7488fa
fix($httpBackend mock): getResponseHeader should be case insensitive
2011-12-01 18:21:45 -05:00
Igor Minar
44b2f44f93
fix($resource): forwardport exposing headers from 0.9.19
2011-12-01 16:20:08 -05:00
Igor Minar
1d14760c6d
fix(ng:include): prevent race conditions by ignoring stale http callbacks
...
This fix is similar to what I've done in ng:view, if a new template has been requested before the
callback for the previous template returned, ignore it. Otherwise weird race conditions happen
and users might end up getting the content for the previous include rendered instead of the most
recent one.
2011-11-30 14:49:36 -05:00
Igor Minar
f43c226c67
fix(copy,equals): prevent browser crashes with Scope or Window
...
Scope and Window instances are special and when copied can crash browser. For this reason
it makes sense to compare them only by identity.
2011-11-30 14:49:36 -05:00
Misko Hevery
0e1fa2aefe
feat($interpolate): string interpolation function
2011-11-30 14:49:36 -05:00
Igor Minar
b00da987a9
scope($digest): add new&old val to the infinite $digest log
2011-11-30 14:49:35 -05:00
Igor Minar
188bdf7768
feat($http): add response interceptors
2011-11-30 14:49:35 -05:00
Igor Minar
dbd880cc0a
feat($http): add promise support
...
quite messy, some tests are missing, contains an experimental jasmine DI support)
2011-11-30 14:49:35 -05:00
Igor Minar
78b6e8a446
feat($parse): add support for transparent evaluation of Promises
...
Parser now builds expressions that can detect promises and transparently
evaluate them to undefined or the promise value.
If promiseA is resolved with value 'A', then {{promiseA}} evals to 'A';
If promiseA is unresolved, then {{promiseA}} evals to undefined;
Following invocations are supported:
- {{promise}}
- {{promise.futureProp}}
- {{[promise][0]}}
- {{object.promise}}
- {{object[promise]}}
- {{array[promise]}}
- {{fn(promise)}}
- combinations of the above
2011-11-30 14:49:35 -05:00
Igor Minar
1cdfa3b960
feat(deferreds/promises): Q-like deferred/promise implementation with a ton of specs
2011-11-30 14:49:03 -05:00
Vojta Jina
16363d8000
refactor(ng:view, ng:include): pass cache instance into $http
...
Instead of doing all the stuff in these widgets (checking cache, etc..) we can rely on $http now...
2011-11-30 14:49:03 -05:00
Vojta Jina
92995bbce9
fix($http): default json transformation should not crash on angular template
...
The way we determine whether it's json is lame anyway. We need to change that.
We should probably check the content type header...
2011-11-30 11:17:25 -05:00
Vojta Jina
b9707d910e
style(): get rid off some jsl warnings
2011-11-30 11:17:25 -05:00
Vojta Jina
5bbd64ac65
feat($http): allow passing custom cache instance per request
...
You can still use cache: true, which will use $http's default cache.
2011-11-30 11:17:25 -05:00
Vojta Jina
caeb1bf899
feat($httpBackend): fix 0 status code when "file" protocol
...
Browsers return always 0 status code for "file" protocol, so we convert them into 200/404.
2011-11-30 11:17:24 -05:00
Vojta Jina
9b4efa73f9
feat(mock.$httpBackend): say which request was expected when unexpected request error
2011-11-30 11:17:24 -05:00
Vojta Jina
4aaa2f7f6b
feat(mock.$httpBackend): verify expectations after flush()
2011-11-30 11:17:24 -05:00
Vojta Jina
6290bd4587
refactor(mock.$httpBackend): rename when().then() to when().respond()
2011-11-30 11:17:24 -05:00
Vojta Jina
e9f81b6631
fix(mock.$httpBackend): flush() even requests sent during callbacks
2011-11-30 11:17:23 -05:00
Vojta Jina
afbe073121
feat(mock.$httpBackend): add verifyNoOutstandingRequest method
...
+ rename verifyExpectations to verifyNoOutstandingExpectation
2011-11-30 11:17:23 -05:00
Vojta Jina
7b705df2b7
feat($http): broadcast $http.request event
2011-11-30 11:17:23 -05:00
Vojta Jina
a4c8ac7126
feat(mock.$httpBackend): throw when nothing to flush, dump data/headers when expected different
2011-11-30 11:17:23 -05:00
Vojta Jina
972c3e9be0
refactor($http): change callback matching mechanism
2011-11-30 11:17:22 -05:00
Vojta Jina
feacf608ee
fix($resource): to work with $http, $httpBackend services
...
Breaks Disabling $resource caching for the moment.
2011-11-30 11:17:22 -05:00
Vojta Jina
fe633dd0cf
fix($http): allow multiple json vulnerability prefixes
...
We strip out both:
)]}',
)]}'
2011-11-30 11:17:22 -05:00
Vojta Jina
fdcc2dbfd3
feat($http): expose pendingRequests and configuration object
...
- $http.pendingRequests is now an array of pending requests
- each request (its future object) has public property configuration
2011-11-30 11:17:22 -05:00
Vojta Jina
5ad0c7d0e4
feat($httpBackend): extract $browser.xhr into separate service
...
- remove whole $browser.xhr stuff
- remove whole mock $browser.xhr stuff
- add $httpBackend service + migrate unit tests from $browser
- add temporary API to access $browser's outstandingRequests count
2011-11-30 11:17:22 -05:00
Vojta Jina
540701a8d8
feat(mocks.$browser): add simple addJs() method into $browser mock
2011-11-30 11:17:22 -05:00
Vojta Jina
cd28a2e952
feat(mocks.$httpBackend): add $httpBackend mock
...
$httpBackend mock allows:
- expecting (asserting) requests
- stubbing (responding without asserting)
Add empty $httpBackend service (currently just wrapper for $browser.xhr)
2011-11-30 11:12:14 -05:00
Vojta Jina
59adadca08
feat($http): new $http service, removing $xhr.*
...
Features:
- aborting requests
- more flexible callbacks (per status code)
- custom request headers (per request)
- access to response headers
- custom transform functions (both request, response)
- caching
- shortcut methods (get, head, post, put, delete, patch, jsonp)
- exposing pendingCount()
- setting timeout
Breaks Renaming $xhr to $http
Breaks Takes one parameter now - configuration object
Breaks $xhr.cache removed - use configuration cache: true instead
Breaks $xhr.error, $xhr.bulk removed
Breaks Callback functions get parameters: response, status, headers
Closes #38
Closes #80
Closes #180
Closes #299
Closes #342
Closes #395
Closes #413
Closes #414
Closes #507
2011-11-30 11:12:14 -05:00
Igor Minar
497839f583
feat($cacheFactory): add general purpose $cacheFactory service
2011-11-30 11:03:42 -05:00