如何传递从ember-power-select中选择的函数

时间:2017-09-12 12:54:39

标签: javascript ember.js ember-data ember-addon

我有一个Ember.js应用程序,对于其中的表单,我正在使用ember-power-select。我已经使用过该插件,但是我对如何配置selected元素有一些问题。正如标题所说,我正在寻求有关如何使用函数配置selected的帮助 我想用一个从服务中检索变量的函数设置所选变量。

我的组件看起来像这样:

import Ember from 'ember'; 

export default Ember.Component.
    appInfo: Ember.inject.service('app-info'),

    languageOption: ['Français', 'English'],
    language() {
       /*
       * In my service appInfo, I have a function called getLocale
       * that return the current locale variable.  
       */
       return this.get('appInfo').getLocale();
       },

       actions: {
           changeLanguage(lang)
           {
              this.set('language', lang);
           }
        }
});

我的模板看起来像那样:

{{#power-select
          selected=language
          options=languageOption
          searchEnabled=false
          onchange=(action 'changeLanguage')
          placeholder=language
        as |lang|}}
          {{lang}}
{{/power-select}}

您可以看到我尝试使用通过服务selected获得的当前locale设置appInfo值。除了选定的部分外,一切工作都很好 在模板中,您可以看到'已选中'是一个可以在组件中设置的值,除了我不想用硬编码的值设置值,但是使用 locale的当前值
每个提示和/或帮助都表示赞赏!

1 个答案:

答案 0 :(得分:0)

刚刚解决了这个问题,我用X来解决问题。正如@BrandonW在评论中所说,计算属性也不起作用。

这是我在组件中添加的代码:

init()

如果您想使用功能在ember-power-select插件中设置*** init() { this._super(...arguments); let loc = this.get('appInfo').getLocale(); if (loc === 'fr') this.set('language', 'Français'); else this.set('language', 'English'); } *** ,则可以执行此操作。