2016-04-19 44 views
0

任何人都可以解释如何使用混入在不同航线烬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

如果您使用的是ember-cli可以生成运行ember g mixin my-custom-ajax混入,这将创造一个文件名为app/mixins,名称为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'); 
     } 
     }); 
    }); 
    } 
}); 

而且在将实现你的mixin的路线,你将不得不进口,包括它:

import MyCustomAjaxMixin from 'yourAppName/mixins/my-custom-ajax' 
import Ember from 'ember'; 

export default Ember.Route.extend(MyCustomAjaxMixin, {}); 
+1

谢谢哥们。它正在工作 –