aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorLucas Galfasó2013-05-24 21:18:51 -0300
committerMisko Hevery2013-07-31 10:30:58 -0700
commitb3777f275c6bd2bd4a88963fd03828eb7cf3aca8 (patch)
tree86d62c51db20647a59bb76912d8122cfcc0b7fe0 /test
parentaa5a16224bb4e19f44fafebaf04ece7665d5ad5b (diff)
downloadangular.js-b3777f275c6bd2bd4a88963fd03828eb7cf3aca8.tar.bz2
feat(directive): support as instance syntax
Support controller: 'MyController as my' syntax for directives which publishes the controller instance to the directive scope. Support controllerAs syntax to define an alias to the controller within the directive scope.
Diffstat (limited to 'test')
-rwxr-xr-xtest/ng/compileSpec.js46
1 files changed, 46 insertions, 0 deletions
diff --git a/test/ng/compileSpec.js b/test/ng/compileSpec.js
index 45502b26..c2827559 100755
--- a/test/ng/compileSpec.js
+++ b/test/ng/compileSpec.js
@@ -2244,6 +2244,52 @@ describe('$compile', function() {
});
+ iit('should support controllerAs', function() {
+ module(function() {
+ directive('main', function() {
+ return {
+ templateUrl: 'main.html',
+ transclude: true,
+ scope: {},
+ controller: function() {
+ this.name = 'lucas';
+ },
+ controllerAs: 'mainCtrl'
+ };
+ });
+ });
+ inject(function($templateCache, $compile, $rootScope) {
+ $templateCache.put('main.html', '<span>template:{{mainCtrl.name}} <div ng-transclude></div></span>');
+ element = $compile('<div main>transclude:{{mainCtrl.name}}</div>')($rootScope);
+ $rootScope.$apply();
+ expect(element.text()).toBe('template:lucas transclude:');
+ });
+ });
+
+
+ it('should support controller alias', function() {
+ module(function($controllerProvider) {
+ $controllerProvider.register('MainCtrl', function() {
+ this.name = 'lucas';
+ });
+ directive('main', function() {
+ return {
+ templateUrl: 'main.html',
+ scope: {},
+ controller: 'MainCtrl as mainCtrl'
+ };
+ });
+ });
+ inject(function($templateCache, $compile, $rootScope) {
+ $templateCache.put('main.html', '<span>{{mainCtrl.name}}</span>');
+ element = $compile('<div main></div>')($rootScope);
+ $rootScope.$apply();
+ expect(element.text()).toBe('lucas');
+ });
+ });
+
+
+
it('should require controller on parent element',function() {
module(function() {
directive('main', function(log) {