2016-07-31 37 views
0

我只查看ng2Translate,因此我可以在我的Ionic2/Angular2项目中使用它进行本地化。我已经设置和工作,并根据文档使用时得到正确的标记值...如何从Angular2中获取字符串值ng2Translate TranslateService方法

<div>{{myVal}}</div> 
<div>{{ 'COMMON.HELLO' | translate:{value: "world"} }}</div> 

和我的字符串值通过罚款。

我现在想尝试在后面的代码中获取一些字符串,并将它们分配给组件变量,然后我可以将它们绑定到标记中,如下所示。

@Component({ 
templateUrl: 'build/pages/sidemenu-page/sidemenu-page.html', 
pipes: [TranslatePipe] 
}) 
export class SideMenuPage { 
    public rootPage = SideMenuPage; 

    public myVal: string; 

    constructor(private menu: MenuController, private nav: NavController, private tranlate: TranslateService){ 
    let temp = tranlate.get("MYTESTVAL"); 
    this.myVal = temp.first(); // <-- type error first does not return a string 
    } 

,然后用它...

<div>{{myVal}}</div> 

tranlate.get返回观察到的RxJs(这我刚开始看,我以前没有使用过) - 我只是不明白如何从中获取“原始字符串值”。事件first似乎仍然返回可观察。

任何人都可以让我知道如何获得字符串?

+0

尝试'this.myVal =温度;'和'{{myVar的|异步}}' – yurzui

回答

0

阅读的RxJs,它看起来像所有我需要做的是

temp.subscribe(x => this.myVal = x) 

这肯定似乎在任何速率工作。

[更新] 事件更好,有一个瞬间的方法.. this.myVal = tranlate.instant("MYTESTVAL");

0

您是否尝试过这样的:

@Component({ 
    templateUrl: 'build/pages/sidemenu-page/sidemenu-page.html', 
    pipes: [TranslatePipe] 
}) 
export class SideMenuPage { 
    public rootPage = SideMenuPage; 

    public myVal: string; 
    public sub: any; 

    constructor(private menu: MenuController, private nav: NavController, private tranlate: TranslateService){ 
    this.sub = tranlate.get("MYTESTVAL").subscribe(value=>this.myVal=value,error=>console.log(error)); 
    } 

    ngOnDestroy(){ 
    this.sub.unsubscribe(); 
} 
}