2017-04-10 57 views
1

文件:需要採用雙向角2升級的工作示例結合蛋白

https://angular.io/docs/ts/latest/guide/upgrade.html#!#using-angularjs-component-directives-from-angular-code

說以下內容:

作爲雙向綁定:

<my-component [(myValue)]="anExpression"> 

在我的情況下,ng-1.5組件使用雙向綁定,因此不能取代簡單的單向綁定。我試圖寫一個ng2包裝。

<ng2-wrapper [(source)]="ng2Value"></ng2-wrapper> 

但是ng2Value永遠不會更新,即使源在組件內更改。 Ng2WrapperComponent有'@Input source',我嘗試過包含'@Output sourceChange'的變體,但是不能提供更新ng2Value的任何東西。

有沒有人有一個工作的例子?

+0

你可以添加重擊嗎? – deen

+0

當您詢問有關由您的代碼引起的問題的問題時,如果您提供可用於重現該問題的代碼,您將得到更好的答案。請參見[如何創建最小,完整和可驗證示例](http://stackoverflow.com/help/mcve)。 – georgeawg

回答

0

這裏是我的collegue的工作例如:

angularJsWrapperComponent.ts(新角度分量):

... 
template: ` 
    <angular-js-component 
     [(canDeactivate)]="this.canDeactivate"> 
    </angular-js-component>` 
... 

export class AngularJsWrapperComponent implements { 
private canDeactivate: boolean; 
... 

angularJsWrapperComponentDirective.ts:

... 
@Directive({ selector: 'angular-js-component' }) 
export class AngularJsComponentWrapperDirective extends UpgradeComponent { 
    @Input() canDeactivate: boolean; 
    @Output() canDeactivateChange: EventEmitter<boolean>; 

    constructor(elementRef: ElementRef, injector: Injector) { 
    super('originalAngularJsComponent', elementRef, injector); 
    } 

} 
... 

originalAngularJsComponent.ts(你r你想升級的AngularJs組件):

... 
bindings: { 
     canDeactivate: '=' 
    } 
...