import Ember from 'ember';
import myConst from '../utils/constants';

export default Ember.Mixin.create(myConst, {
  getFieldId: function(productCode) {
        console.log(myConst.MY_METHODS.FIELD_ID); //Not able to access this
  }
});


我的constants.js看起来像

var myConst = {};

myConst.MY_METHODS = {
        FIELD_ID: "fieldId"
};

export default myConst;


我无法访问mixin中的myConst。我究竟做错了什么 ?

最佳答案

我认为您在这里混淆了两个概念。在您的示例中,myConst是一个实用程序模块,其中包含一些默认值,对吗?在这种情况下,您不想将其混入mixin(这是您使用Ember.Mixin.create(myConst, {...})进行的操作。您应该这样做:

import Ember from 'ember';
import myConst from '<app-name>/utils/constants';

export default Ember.Mixin.create({
  getFieldId: function(productCode) {
    console.log(myConst.MY_METHODS.FIELD_ID);
  }
});


如果这不起作用,则可能与您的import路径有关。我将仅通过console.log ing myConst开始调试,以确保您具有模块中的预期对象。

10-06 15:46