mirror of
https://github.com/zhigang1992/angular.js.git
synced 2026-04-16 22:30:36 +08:00
Enable data-binding for style tags. Note: this feature does not work on IE8. Closes #2387 Closes #6492
84 lines
2.6 KiB
JavaScript
84 lines
2.6 KiB
JavaScript
'use strict';
|
|
|
|
describe('style', function() {
|
|
var element;
|
|
|
|
|
|
afterEach(function() {
|
|
dealoc(element);
|
|
});
|
|
|
|
|
|
it('should compile style element without binding', inject(function($compile, $rootScope) {
|
|
element = jqLite('<style type="text/css">.header{font-size:1.5em; h3{font-size:1.5em}}</style>');
|
|
$compile(element)($rootScope);
|
|
$rootScope.$digest();
|
|
|
|
// read innerHTML and trim to pass on IE8
|
|
expect(trim(element[0].innerHTML)).toBe('.header{font-size:1.5em; h3{font-size:1.5em}}');
|
|
}));
|
|
|
|
|
|
it('should compile style element with one simple bind', inject(function($compile, $rootScope) {
|
|
element = jqLite('<style type="text/css">.some-container{ width: {{elementWidth}}px; }</style>');
|
|
$compile(element)($rootScope);
|
|
$rootScope.$digest();
|
|
|
|
// read innerHTML and trim to pass on IE8
|
|
expect(trim(element[0].innerHTML)).toBe('.some-container{ width: px; }');
|
|
|
|
$rootScope.$apply(function() {
|
|
$rootScope.elementWidth = 200;
|
|
});
|
|
|
|
// read innerHTML and trim to pass on IE8
|
|
expect(trim(element[0].innerHTML)).toBe('.some-container{ width: 200px; }');
|
|
}));
|
|
|
|
|
|
it('should compile style element with one bind', inject(function($compile, $rootScope) {
|
|
element = jqLite('<style type="text/css">.header{ h3 { font-size: {{fontSize}}em }}</style>');
|
|
$compile(element)($rootScope);
|
|
$rootScope.$digest();
|
|
|
|
// read innerHTML and trim to pass on IE8
|
|
expect(trim(element[0].innerHTML)).toBe('.header{ h3 { font-size: em }}');
|
|
|
|
$rootScope.$apply(function() {
|
|
$rootScope.fontSize = 1.5;
|
|
});
|
|
|
|
// read innerHTML and trim to pass on IE8
|
|
expect(trim(element[0].innerHTML)).toBe('.header{ h3 { font-size: 1.5em }}');
|
|
}));
|
|
|
|
|
|
it('should compile style element with two binds', inject(function($compile, $rootScope) {
|
|
element = jqLite('<style type="text/css">.header{ h3 { font-size: {{fontSize}}{{unit}} }}</style>');
|
|
$compile(element)($rootScope);
|
|
$rootScope.$digest();
|
|
|
|
// read innerHTML and trim to pass on IE8
|
|
expect(trim(element[0].innerHTML)).toBe('.header{ h3 { font-size: }}');
|
|
|
|
$rootScope.$apply(function() {
|
|
$rootScope.fontSize = 1.5;
|
|
$rootScope.unit = 'em';
|
|
});
|
|
|
|
// read innerHTML and trim to pass on IE8
|
|
expect(trim(element[0].innerHTML)).toBe('.header{ h3 { font-size: 1.5em }}');
|
|
}));
|
|
|
|
|
|
it('should compile content of element with style attr', inject(function($compile, $rootScope) {
|
|
element = jqLite('<div style="some">{{bind}}</div>');
|
|
$compile(element)($rootScope);
|
|
$rootScope.$apply(function() {
|
|
$rootScope.bind = 'value';
|
|
});
|
|
|
|
expect(element.text()).toBe('value');
|
|
}));
|
|
});
|