2016-03-04 39 views
0

我有一些麻煩,搞清楚如何我可以在控制器內部翻譯我的數組。在控制器中使用pascal翻譯數組轉換angularjs

在我的控制,我沒有這樣的事情:

var vm = this; 

    $rootScope.$on('$translateChangeSuccess', function() { 
     vm.salutation = $translate.instant('client.test'); 
     console.log(vm.salutation); 
    }); 

    vm.test = 'test'; 


    vm.servicesData = { 
     listOfServiceNames : [ 
      "sample", 
      vm.salutation, 
      vm.test, 

     ] 
    } 

的視圖中:

<bootstrap-dropdown ng-model="vm.client.salutation" data-placeholder="Aanhef" data-dropdown-data="vm.servicesData.listOfServiceNames"></bootstrap-dropdown> 

中的console.log顯示正確的字符串。但是當我看着前端vm.salutation是空的。任何線索我如何在這裏正確使用翻譯?

+0

你嘗試在控制器初始化第一'vm.salutation'的東西?如果你已經做到了,你能展示你的視圖是怎樣的嗎?一個笨蛋也會幫忙 –

+0

嗨@NMittal我沒有初始化vm.salutation,但下拉菜單仍然給出一個空字符串。但console.log顯示正確的字符串。 – Greg

+0

我想你需要有'vm.servicesData.push(vm.salutation)'在你的回調$和'vm.servicesData = { listOfServiceNames: 「樣本」, vm.test ] }' –

回答

1

正如評論中指出的那樣,您應該將項目推送到listOfServiceNames陣列,供觀察者觸發並更新視圖。

你需要

$rootScope.$on('$translateChangeSuccess', function() { 
     vm.salutation = $translate.instant('client.test'); 
     vm.servicesData.push(vm.salutation);   
     console.log(vm.salutation); 
    }); 

而且

vm.servicesData = { 
    listOfServiceNames : [ 
     "sample", 
     vm.test 
    ] 
}