2016-04-19 67 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

謝謝哥們。它正在工作 –