Skip to content

Commit

Permalink
Fix #4, Fix #106
Browse files Browse the repository at this point in the history
  • Loading branch information
dxbykov committed Oct 31, 2016
1 parent 4d8c31a commit b74dec3
Show file tree
Hide file tree
Showing 4 changed files with 67 additions and 3 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

- Fix the 'dx-validator' component ([#30](https://github.com/DevExpress/devextreme-angular2/issues/30))
- Fix the component property change propagation to the corresponding widget option ([#6](https://github.com/DevExpress/devextreme-angular2/issues/6))
- Fix the 'dxTemplate' directive issues ([#4](https://github.com/DevExpress/devextreme-angular2/issues/4) and [#106](https://github.com/DevExpress/devextreme-angular2/issues/106))

## 16.2.1-alpha.1 (2016-10-20)

Expand Down
3 changes: 0 additions & 3 deletions examples/app/main.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
import { enableProdMode } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { MyAppModule } from './app.module';

import config from 'devextreme/core/config';
config({ defaulCurrency: 'EUR' });

enableProdMode();

platformBrowserDynamic().bootstrapModule(MyAppModule);
4 changes: 4 additions & 0 deletions src/core/dx.template.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,10 @@ export class DxTemplateDirective {
if (renderData.container) {
renderData.container.append(childView.rootNodes);
}
// =========== WORKAROUND =============
// https://github.com/angular/angular/issues/12243
childView['detectChanges']();
// =========== /WORKAROUND =============
return $(childView.rootNodes);
}
templateAsFunction(model, itemIndex, container) {
Expand Down
62 changes: 62 additions & 0 deletions tests/src/ui/select-box.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
/// <reference path="../../../typings/globals/jasmine/index.d.ts" />

import {
Component,
} from '@angular/core';

import {
TestBed,
async
} from '@angular/core/testing';

import DxSelectBox from 'devextreme/ui/select_box';

import {
DxSelectBoxModule,
DxTextBoxModule,
DxTemplateModule
} from '../../../dist';

@Component({
selector: 'test-container-component',
template: ''
})
class TestContainerComponent {
}

describe('DxSelectBox', () => {

beforeEach(() => {
TestBed.configureTestingModule(
{
declarations: [TestContainerComponent],
imports: [DxSelectBoxModule, DxTextBoxModule, DxTemplateModule]
});
});

function getWidget(fixture) {
let widgetElement = fixture.nativeElement.querySelector('.dx-selectbox') || fixture.nativeElement;
return DxSelectBox['getInstance'](widgetElement);
}

// spec
it('field template should work', async(() => {
TestBed.overrideComponent(TestContainerComponent, {
set: {
template: `
<dx-select-box fieldTemplate="myTemplate">
<div *dxTemplate="let data of 'myTemplate'">
<dx-text-box [value]="data"></dx-text-box>
</div>
</dx-select-box>
`
}
});
let fixture = TestBed.createComponent(TestContainerComponent);
fixture.detectChanges();

let instance = getWidget(fixture);

expect(instance.element().find('.dx-textbox').length).toBe(1);
}));
});

0 comments on commit b74dec3

Please sign in to comment.