selectize.js的占位符翻译

时间:2017-11-23 16:23:05

标签: javascript html angularjs selectize.js

我正在尝试在selectize.js中为占位符添加翻译。

然而,在翻译方面似乎有不同的行为。

例如

<selectize config='selectizeConfig' placeholder='keyword' ng-click="clear()"
options="myOptions" ng-model="selected"></selectize>

当我尝试这样做时,

placeholder="{{'keyword'| translate }}"

它不起作用!虽然它适用于uib-tooltip和其他类似的东西。

<input type="text" placeholder="{{'keyword'| translate}}"/>

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

因此,当您使用angular-selectize时,您可以选择在config对象中设置占位符。首选而不是在DOM上使用占位符属性。所以您的配置对象可能如下所示:

$scope.myConfig = {
    create: true,
    onChange: function(value){
      console.log('onChange', value)
    },
    placeholder : $scope.placeholder
}

其中$ scope.placeholder在控制器中定义如下:

$scope.placeholder = $filter('translate')('PLACEHOLDER');

此处'PLACEHOLDER'是翻译ID。因此,您可以根据使用ngTranslate的翻译来选择占位符更改。

这取决于您的应用中实施的翻译,例如如果您的应用程序没有重新加载更改语言,那么您将不得不处理更多的事情,例如,在您需要再次定义该选择的配置对象时需要更改语言。你需要删除元素&amp;使用ng-DOM在DOM中重新创建它,如果这样,那个选择元素上的闪烁就会很少,但它会很好地执行。如果您的应用程序将在语言更改时重新加载,则不需要此逻辑实现。

<强> Working Plunker Example