2016-05-13 3 views
0

Я пытаюсь объединить проект MVC с EmberJS. Я искал существующие вопросы, но я только зашел так далеко: я создал что-то с ember new emberProject и написал простые шаблоны, маршруты, модели, мираж и т. Д. Затем я создал веб-API MVC и в контроллерах я создал AppController и написал:emberJS с MVC

public class AppController : Controller 
    { 
     // GET: App 
     public ActionResult Index() 
     { 
      return File(Server.MapPath("~/emberProject/dist/") + "index.html", "text/html"); 
     } 
    } 

и для индекса я пишу путь:

@{ 
    Layout = null; 
} 

<!DOCTYPE html> 

<html> 
<head> 
    <link rel="stylesheet" href="/emberProject/dist/assets/vendor.css"> 
    <meta name="viewport" content="width=device-width" /> 
    <title>Index</title> 
</head> 
<body> 
    <div> 
    </div> 
</body> 
</html> 

Что я должен делать после этого? Должен ли я видеть мои файлы .hbs и .js в проекте MVC? Потому что я не могу. Кроме того, прямо сейчас я использую жестко закодированные фиктивные данные. Мне нужно взять данные из MVC для использования в качестве «модели» в моем проекте ember. Что мне делать? Спасибо.

ответ

3

Настоятельно рекомендуется сообществом ember, чтобы ваше приложение frontend и ваш интерфейс API были отделены друг от друга. Это также является обязательным требованием, если вы хотите использовать ember-cli

Таким образом, вы использовали бы только приложение ASP.NET MVC для обслуживания ваших данных и ваших статических активов. Для разработки вы должны начать свой проект ember-cli с ember serve --proxy=http://your-asp.net_mvcproject/, чтобы все запросы API были проксированы на ваш asp.NET Backend.

Затем вы должны создать API в своем проекте MVP asp.NET для доступа к своим данным, я рекомендую использовать JSONAPI, который является реализацией по умолчанию для ember.

Тогда вы можете создать свое клиентское приложение только с ember-cli, без asp.net MVC, только получая ваши данные с вашего сервера.

Интегрирование тогда требуется только для развертывания, где вам нужно сервер ваши статические файлы строить с ember build --prod и, как запасной вариант, вы всегда служить файл уголек index.html, так уголек может загрузиться и уголек маршрутизатор может решить, что делать то ,


Другой способ заключается в интеграцию ember в проект asp.net MVC. Это абсолютно возможно, но вы должны сделать это только в том случае, если вы хорошо понимаете оба варианта: конвейер сборки ember-cli и структуру проекта asp.NET. Если вы это сделаете, вам придется самому делать много вещей, которые обрабатываются ember-cli.

Например, вам нужно будет перевести ES6 на ES5 самостоятельно, и вы не сможете использовать какие-либо дополнения ember-cli. Кроме того, вам, вероятно, потребуется скомпилировать ваши шаблоны и внедрить настраиваемый преобразователь.

+0

Спасибо за ответ. Но, извините, я не очень хорош в части MVC. Я думаю, мне не нужно создавать API, потому что данные готовы, как они сказали мне, бэкэнд-часть была сделана кем-то еще и должна возвращать JSON, но как я получу эти данные на ember? Я не понимаю, что мне следует писать в файл .js', который я создал в качестве модели, и как вызывать в нем данные JSON. Благодарю. – hbc

+0

@HandeBc хорошо, вы бы изменили существующий адаптер, такой как 'JSONAPIAdapter' или' RESTADAPTER', или напишите новый, а затем вызовите свое ember-приложение с помощью 'ember serve -proxy = http: // backend /'. – Lux