我模型中有几个具有状态列表的属性:thing.js
... status: DS.attr('number'), statesValues: {1 : "First",2: "Some Choice", 3: "Nothing"} ...
我如何在另一个ember对象中访问Thing模型中的值?我尝试导入模型,但我甚至不知道导入的正确路径。
bvn4nwqk1#
我认为service将是一个很好的解决方案,可以在Ember.js应用程序中共享静态数据,并在需要时注入数据。
// app/services/static-data.js import Service from '@ember/service'; import { computed } from '@ember/object' export default Service.extend({ statesValues: computed(function() { return { 1: 'First', 2: 'Second', 3: 'Third' }; }) });
那么您可以将它注入到应用程序、组件、模型、控制器等的任何地方。
// app/models/thing.js import DS from 'ember-data'; import { inject as service } from '@ember/service'; export default DS.Model.extend({ staticData: service() .... });
ztyzrc3y2#
您需要使用下面所述的方法之一从存储中获取模型:https://guides.emberjs.com/release/models/finding-records/。
const myModel = await this.store.findRecord('thing', 1); console.log(myModel.get('statesValues'));
const myModel = this.store.createRecord('thing', { /* optional defaults go here, e.g., `status: 2,` */ }); console.log(myModel.get('statesValues'));
goqiplq23#
最后,我在模型中添加了以下内容:
export const statusValues ={...}
为了使用它,我根据需要导入它:
import {statusValues} from 'app-name/models/model-name'
3条答案
按热度按时间bvn4nwqk1#
我认为service将是一个很好的解决方案,可以在Ember.js应用程序中共享静态数据,并在需要时注入数据。
那么您可以将它注入到应用程序、组件、模型、控制器等的任何地方。
ztyzrc3y2#
您需要使用下面所述的方法之一从存储中获取模型:https://guides.emberjs.com/release/models/finding-records/。
goqiplq23#
最后,我在模型中添加了以下内容:
为了使用它,我根据需要导入它: