2016-12-28 7 views
1

Я пытаюсь создать базовый класс для своих контроллеров, поэтому я могу избежать дублирования кода.Создайте базовый класс для контроллера для расширения/наследования в приложении Ember

Проблема здесь в том, что она бросает мне ошибки всякий раз, когда я пытаюсь ее использовать.

«Assertion Ошибка: Вы попытались определить {{link-to "inventory"}}, но не передавать параметры, необходимые для создания своих динамических сегментов не удалось найти модуль controllers/base-inventory импортируемого из frontend/controllers/inventory

Чтобы создать свой базовый контроллер I Я использую уголек командной строки и это то, что я сделал:

ember g controller base-inventory 

Тогда

// base-inventory.js 
const BaseInventory = Ember.Controller.extend({ 
    //my code... 
}); 
export default BaseInventory; 

В контроллере, где я хочу использовать этот базовый класс я сделал следующие

import BaseInventory from 'controllers/base-inventory'; 
// also tried import { BaseInventory } from 'controllers/base-inventory'; 
// and export default new BaseInventory({}); 
export default BaseInventory.extend({ 
    //more code here... 
}); 

Любые мысли о том, что я делаю неправильно?

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

Если невозможно сделать так, как я пытаюсь, я напишу mixin.

ответ

3

Оба файла находятся в одной и той же структуре папок, так путь импорта должен быть как ./base-inventory

import BaseInventory from './base-inventory'; 
Смежные вопросы