aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIgor Minar2013-08-21 01:11:19 -0700
committerIgor Minar2013-08-21 01:27:58 -0700
commit166e0d63d0d3e1e4b4c9771d3046dd89a4e551af (patch)
treebecd77a64a2111383deb141dd2f7e5a169365727
parent0d7f19bb620ca4f733e5c202807921501e35172c (diff)
downloadangular.js-166e0d63d0d3e1e4b4c9771d3046dd89a4e551af.tar.bz2
revert: fix($compile): correct controller instantiation...
fix($compile): correct controller for async directives This reverts commit 51d32243fe8cfbdcd1b647950d4e99ed57677558 as well as commit 9c51d503188efae14b81bd4d6dd7d5a3363f050f Changing ordering of events in stable branch is not a good idea.
-rw-r--r--src/ng/compile.js7
-rwxr-xr-xtest/ng/compileSpec.js119
2 files changed, 3 insertions, 123 deletions
diff --git a/src/ng/compile.js b/src/ng/compile.js
index 9e124edb..30d048d4 100644
--- a/src/ng/compile.js
+++ b/src/ng/compile.js
@@ -1008,10 +1008,9 @@ function $CompileProvider($provide) {
replaceWith(linkRootElement, jqLite(beforeTemplateLinkNode), linkNode);
}
- afterTemplateNodeLinkFn(
- beforeTemplateNodeLinkFn(afterTemplateChildLinkFn, scope, linkNode, $rootElement, controller),
- scope, linkNode, $rootElement, controller
- );
+ afterTemplateNodeLinkFn(function() {
+ beforeTemplateNodeLinkFn(afterTemplateChildLinkFn, scope, linkNode, $rootElement, controller);
+ }, scope, linkNode, $rootElement, controller);
}
linkQueue = null;
}).
diff --git a/test/ng/compileSpec.js b/test/ng/compileSpec.js
index b76eb132..50aa30ef 100755
--- a/test/ng/compileSpec.js
+++ b/test/ng/compileSpec.js
@@ -2216,125 +2216,6 @@ describe('$compile', function() {
expect(asyncCtrlSpy).toHaveBeenCalledOnce();
});
});
-
-
- it('should instantiate the controller after the isolate scope bindings are initialized (with template)', function () {
- module(function () {
- var Ctrl = function ($scope, log) {
- log('myFoo=' + $scope.myFoo);
- };
-
- directive('myDirective', function () {
- return {
- scope: {
- myFoo: "="
- },
- template: '<p>Hello</p>',
- controller: Ctrl
- };
- });
- });
-
- inject(function ($templateCache, $compile, $rootScope, log) {
- $rootScope.foo = "bar";
-
- element = $compile('<div my-directive my-foo="foo"></div>')($rootScope);
- $rootScope.$apply();
- expect(log).toEqual('myFoo=bar');
- });
- });
-
-
- it('should instantiate the controller after the isolate scope bindings are initialized (with templateUrl)', function () {
- module(function () {
- var Ctrl = function ($scope, log) {
- log('myFoo=' + $scope.myFoo);
- };
-
- directive('myDirective', function () {
- return {
- scope: {
- myFoo: "="
- },
- templateUrl: 'hello.html',
- controller: Ctrl
- };
- });
- });
-
- inject(function ($templateCache, $compile, $rootScope, log) {
- $templateCache.put('hello.html', '<p>Hello</p>');
- $rootScope.foo = "bar";
-
- element = $compile('<div my-directive my-foo="foo"></div>')($rootScope);
- $rootScope.$apply();
- expect(log).toEqual('myFoo=bar');
- });
- });
-
-
- it('should allow controller usage in pre-link directive functions with templateUrl', function () {
- module(function () {
- var Ctrl = function (log) {
- log('instance');
- };
-
- directive('myDirective', function () {
- return {
- scope: true,
- templateUrl: 'hello.html',
- controller: Ctrl,
- compile: function () {
- return {
- pre: function (scope, template, attr, ctrl) {},
- post: function () {}
- };
- }
- };
- });
- });
-
- inject(function ($templateCache, $compile, $rootScope, log) {
- $templateCache.put('hello.html', '<p>Hello</p>');
-
- element = $compile('<div my-directive></div>')($rootScope);
- $rootScope.$apply();
-
- expect(log).toEqual('instance');
- expect(element.text()).toBe('Hello');
- });
- });
-
-
- it('should allow controller usage in pre-link directive functions with a template', function () {
- module(function () {
- var Ctrl = function (log) {
- log('instance');
- };
-
- directive('myDirective', function () {
- return {
- scope: true,
- template: '<p>Hello</p>',
- controller: Ctrl,
- compile: function () {
- return {
- pre: function (scope, template, attr, ctrl) {},
- post: function () {}
- };
- }
- };
- });
- });
-
- inject(function ($templateCache, $compile, $rootScope, log) {
- element = $compile('<div my-directive></div>')($rootScope);
- $rootScope.$apply();
-
- expect(log).toEqual('instance');
- expect(element.text()).toBe('Hello');
- });
- });
});