mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-11-07 15:07:13 +08:00
Angular tests running, content scoping
This commit is contained in:
@ -32,7 +32,8 @@ module.exports = function(grunt) {
|
||||
},
|
||||
distAngular: {
|
||||
src: [
|
||||
'js/ext/angular/src/**/*.js'
|
||||
'js/ext/angular/src/ionicAngular.js',
|
||||
'js/ext/angular/src/directive/**/*.js'
|
||||
],
|
||||
dest: 'dist/<%= pkg.name %>-angular.js'
|
||||
},
|
||||
|
||||
25
dist/ionic-angular.js
vendored
25
dist/ionic-angular.js
vendored
@ -1,3 +1,5 @@
|
||||
angular.module('ionic.ui', ['ionic.ui.content', 'ionic.ui.tabs', 'ionic.ui.nav', 'ionic.ui.sideMenu']);
|
||||
;
|
||||
angular.module('ionic.ui.content', {})
|
||||
|
||||
// The content directive is a core scrollable content area
|
||||
@ -6,18 +8,18 @@ angular.module('ionic.ui.content', {})
|
||||
return {
|
||||
restrict: 'E',
|
||||
replace: true,
|
||||
transclude: true,
|
||||
scope: true,
|
||||
template: '<div class="content" ng-class="{\'has-header\': hasHeader, \'has-tabs\': hasTabs}"></div>',
|
||||
compile: function(element, attr, transclude, navCtrl) {
|
||||
scope: false,
|
||||
compile: function(element, attr, transclude) {
|
||||
return function($scope, $element, $attr) {
|
||||
$scope.hasHeader = attr.hasHeader;
|
||||
$scope.hasTabs = attr.hasTabs;
|
||||
$element.addClass('content');
|
||||
|
||||
var newScope = $scope.$parent.$new();
|
||||
|
||||
$element.append(transclude(newScope));
|
||||
};
|
||||
if(attr.hasHeader) {
|
||||
$element.addClass('has-header');
|
||||
}
|
||||
if(attr.hasTabs) {
|
||||
$element.addClass('has-tabs');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
@ -83,7 +85,6 @@ angular.module('ionic.ui.nav', [])
|
||||
'<h1 class="title">{{getTopController().title}}</h1>' +
|
||||
'</header>',
|
||||
link: function(scope, element, attrs, navCtrl) {
|
||||
scope.isHidden = attrs.hidden;
|
||||
scope.goBack = function() {
|
||||
navCtrl.pop();
|
||||
}
|
||||
@ -319,5 +320,3 @@ angular.module('ionic.ui.tabs', [])
|
||||
'</a>'
|
||||
}
|
||||
});
|
||||
;
|
||||
angular.module('ionic.ui', ['ionic.ui.content', 'ionic.ui.tabs', 'ionic.ui.nav', 'ionic.ui.sideMenu']);
|
||||
|
||||
@ -14,17 +14,20 @@ module.exports = function(config) {
|
||||
|
||||
// list of files / patterns to load in the browser
|
||||
files: [
|
||||
|
||||
// Include jQuery only for testing convience (lots of DOM checking for unit tests on directives)
|
||||
'https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js',
|
||||
|
||||
'vendor/angular/1.2.0rc1/*',
|
||||
'https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0-rc.2/angular.min.js',
|
||||
'https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0-rc.2/angular-mocks.js',
|
||||
'https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0-rc.2/angular-touch.js',
|
||||
'https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0-rc.2/angular-animate.js',
|
||||
|
||||
'dist/ionic.js',
|
||||
'dist/ionic-angular.js',
|
||||
|
||||
'test/**/*.js',
|
||||
//'ext/angular/src/**/*.js',
|
||||
//'ext/angular/test/**/*.js',
|
||||
//'hacking/**/*.js',
|
||||
//'test/**/*.js'
|
||||
|
||||
'js/ext/angular/test/**/*.js'
|
||||
],
|
||||
|
||||
|
||||
|
||||
20
js/ext/angular/src/directive/ionicContent.js
vendored
20
js/ext/angular/src/directive/ionicContent.js
vendored
@ -6,18 +6,18 @@ angular.module('ionic.ui.content', {})
|
||||
return {
|
||||
restrict: 'E',
|
||||
replace: true,
|
||||
transclude: true,
|
||||
scope: true,
|
||||
template: '<div class="content" ng-class="{\'has-header\': hasHeader, \'has-tabs\': hasTabs}"></div>',
|
||||
compile: function(element, attr, transclude, navCtrl) {
|
||||
scope: false,
|
||||
compile: function(element, attr, transclude) {
|
||||
return function($scope, $element, $attr) {
|
||||
$scope.hasHeader = attr.hasHeader;
|
||||
$scope.hasTabs = attr.hasTabs;
|
||||
$element.addClass('content');
|
||||
|
||||
var newScope = $scope.$parent.$new();
|
||||
|
||||
$element.append(transclude(newScope));
|
||||
};
|
||||
if(attr.hasHeader) {
|
||||
$element.addClass('has-header');
|
||||
}
|
||||
if(attr.hasTabs) {
|
||||
$element.addClass('has-tabs');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
57
js/ext/angular/test/content.html
Normal file
57
js/ext/angular/test/content.html
Normal file
@ -0,0 +1,57 @@
|
||||
<html ng-app="navTest">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Nav Bars</title>
|
||||
|
||||
<!-- Sets initial viewport load and disables zooming -->
|
||||
<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no">
|
||||
<link href="/vendor/font-awesome/css/font-awesome.css" rel="stylesheet">
|
||||
<link rel="stylesheet" href="../../../../dist/ionic.css">
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0-rc.2/angular.min.js"></script>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0-rc.2/angular-touch.js"></script>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0-rc.2/angular-animate.js"></script>
|
||||
<style>
|
||||
.reveal-animation {
|
||||
/*
|
||||
-webkit-transform: translate3d(0%, 0, 0);
|
||||
transform: translate3d(0%, 0, 0);
|
||||
|
||||
-webkit-transition: -webkit-transform 1s ease-in-out;
|
||||
transition: transform 1s ease-in-out;
|
||||
*/
|
||||
}
|
||||
.reveal-animation.ng-enter {
|
||||
-webkit-transition: .2s ease-in-out all;
|
||||
-webkit-transform:translate3d(100%,0,0) ;
|
||||
}
|
||||
.reveal-animation.ng-enter-active {
|
||||
-webkit-transform:translate3d(0,0,0) ;
|
||||
}
|
||||
.reveal-animation.ng-leave {
|
||||
-webkit-transition: .2s ease-in-out all;
|
||||
-webkit-transform:translate3d(0%,0,0);
|
||||
}
|
||||
.reveal-animation.ng-leave-active {
|
||||
-webkit-transition: .2s ease-in-out all;
|
||||
-webkit-transform:translate3d(-100%,0,0);
|
||||
}
|
||||
</style>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<content has-header="true" ng-controller="AppCtrl" class="reveal-animation">
|
||||
</content>
|
||||
|
||||
<script src="../../../../dist/ionic.js"></script>
|
||||
<script src="../../../../dist/ionic-angular.js"></script>
|
||||
<script>
|
||||
angular.module('navTest', ['ionic.ui'])
|
||||
|
||||
.controller('AppCtrl', function($scope, $compile, $element) {
|
||||
$scope.what = {};
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@ -12,4 +12,9 @@ describe('Ionic Content directive', function() {
|
||||
element = compile('<content></content>')(scope);
|
||||
expect(element.hasClass('content')).toBe(true);
|
||||
});
|
||||
|
||||
it('Has header', function() {
|
||||
element = compile('<content has-header="true"></content>')(scope);
|
||||
expect(element.hasClass('has-header')).toEqual(true);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user