Mixin在不同的路线?

时间:2016-04-19 10:02:30

标签: ember.js ember-data ember-cli

任何人都可以解释如何在ember

中的不同路线中使用 mixin

考虑一个示例我想编写一个方法,它将使用mixin来处理REST API调用。

getData: function() {
    return new Promise(function(resolve, reject){
      $.ajax({
           url: 'http://www.carqueryapi.com/api/0.3/?callback=?&cmd=getMakes&year=2010&sold_in_us=1',
           type: 'GET',
           accepts: 'application/json',
           dataType: 'jsonp',
           success: function(data) {
               resolve(data);
           },
           error: function() {
               reject('DEBUG: GET Enquiries Failed');
           }
      });
    });
  }

假设我想在不同的路线中使用此 getData(),什么是最佳解决方案

1 个答案:

答案 0 :(得分:1)

如果您使用ember-cli,则可以通过运行ember g mixin my-custom-ajax来生成mixins,这将在名为app/mixins的{​​{1}}下创建一个文件。

在该文件中,您可以按如下方式导出mixin:

my-custom-ajax.js

在实现mixin的路线中,您必须导入并包含它:

import Ember from 'ember';

export default Ember.Mixin.create({
  getData() {
    return new Promise(function(resolve, reject) {
      $.ajax({
        url: 'http://www.carqueryapi.com/api/0.3/?callback=?&cmd=getMakes&year=2010&sold_in_us=1',
        type: 'GET',
        accepts: 'application/json',
        dataType: 'jsonp',
        success: function(data) {
          resolve(data);
        },
        error: function() {
          reject('DEBUG: GET Enquiries Failed');
        }
      });
    });
  }
});