2014-08-28 2 views
4

У меня есть web app и Ember app в iframe. Я хочу импортировать пользовательскую библиотеку от web app до ember app, как глобальная переменная. Библиотека выглядит как объект с функцией:Импорт пользовательской библиотеки в ember-cli

var helpers = { 
    helper1: function() {}, 
    helper2: function() {} 
}; 

Библиотека, работающая с сокетами, будет одинаковой для обоих приложений.

я писал:

app.import("./../../../public/scripts/js-helpers.js"); //file located in web app 

Я не могу получить доступ к переменной helpers в проекте и Ember-кли копию папки public в их рабочую папку. Извините, если вопрос глуп, я не могу понять принципы импорта ember-cli.

ответ

7

Я предложу одно решение, которое я считаю самым легким. У вас не будет переменных с глобальным охватом, но вы будете использовать подход модуля ES6.

Например, у вас есть файл под app_name/lib/ под названием helper.js. lib - это каталог, созданный для хранения пользовательских библиотек. Вам не обязательно использовать это имя. Используйте команду export default как таковой:

export default { 
    helper1: function() {}, 
    helper2: function() {} 
}; 

Затем, позволяет сказать, что вам это нужно в маршруте. Здесь может быть один из таких маршрутов:

import helper from 'app_name/lib/helper'; 

export default Ember.Route.extend({ 
    model: function(){ 
     helper.helper1(); 
} 

helper это имя, что вы импортировали, и представляет собой объект, который был экспортирован в вашем helper.js. Этот метод кажется стилем, в котором Ember-CLI предлагает вам использовать

+0

Спасибо, он работает. Но как я могу импортировать файлы за пределами корневого каталога ember. Ember поиск только tmp directory'ember/chat/tmp/tree_merger-tmp_dest_dir-5dhDCkaV.tmp /../../../ public/scripts/js-helpers.js' и после сборки (с '/../. ./../ ') делают неправильный путь. – user1156168

Смежные вопросы