2012-07-04 1 views
8

다른 개발자가 ember.js 프레임 워크를 사용하여 독립 실행 형 클라이언트 측 솔루션으로 UI를 개발 한 프로젝트를 진행 중입니다.면도기 엔진과 ember.js가 함께 작동 할 수 있습니까?

이 작품을 ASP.NET MVC3 프로젝트로 옮기라는 질문을 받았습니다.

문제는 ember.js가 구문에서 중괄호와 이중 중괄호를 사용하기 때문에 MVC3에서 사용하는 면도기 엔진을 간섭하는 것 같습니다.

2 가지 기술 (ASP MVC3 및 ember.js)이 함께 작동하지 않는다고 생각합니까?

+0

왜 ASP.Net MVC로 옮길 것을 요청 받았습니까? 오늘 존재하는 앱에 문제가 있습니까? –

+0

고객의 요구 사항입니다. 그들은 주로 .NET/.NET MVC를 사용하는 회사입니다. UI는 주로 PHP 배경을 가진 개발자가 수행했습니다. –

+0

+1을 사용하여 의견없이 -1을 카운터합니다. –

답변

-1

http://weblogs.asp.net/scottgu/archive/2010/12/15/asp-net-mvc-3-razor-s-and-lt-text-gt-syntax.aspx에 설명 된 블록을 사용하여 엠버 템플릿을 랩핑하여 올바르게 사용할 수 있어야합니다.

그렇다고해서 실제로 고객의 요구 사항을 충분히 채울 수는 없다고 말했습니다. 일반적인 ASP.Net MVC 개발자는이 코드 기반으로 작업하려면 여전히 ember.js를 배워야합니다. 당신이 정말 일을해야하는 것은 모델의 페이지 부분 뷰 등을 만들어 같은 ASP.Net MVC 개념을 사용하여 다시 작성입니다

+0

아닙니다.ASP.NET MVC에서는 HTTP 요청을 입력으로받는 서버 측 프레임 워크이므로 동일한 동작을 다시 작성할 수 없습니다. 반면에 Ember.js는 브라우저 이벤트를 수신하는 클라이언트 측 프레임 워크이므로 사용자 상호 작용에보다 정교하게 대응할 수 있습니다. 클라이언트 측과 서버 측 MVC를 비교해 보면 다음과 같습니다. [link] (http://emberjs.com/guides/ember_mvc/) –

+0

ASP.NET MVC를 사용하는 이유와 Ember를 사용해야하는 이유가 있습니다. ASP.NET MVC 개념을 사용하여 작업하는 것은 고객이 원하는 것이 아닐 수도 있습니다. 서버 측 기술로 ASP.NET MVC를 사용해야한다고해서 더 이상 클라이언트 측 프레임 워크를 활용할 수 없다는 의미는 아니며 Ember를 사용한다고해서 반드시 "고객 요구 사항 충족"이 방지되는 것은 아닙니다. –

1

짧은 답변 : 예, 어떤 JS 라이브러리의 asp.net MVC와 함께 작업 할 수

그러나 일부 구문 문제 특정보기 렌더링 엔진 (면도기, 웹 양식, 스파크 등) 구문을 의 js 라이브러리과 병렬로 분석해야합니다.

예를 들어, jQuery는 $ sign을 별칭으로 사용하며이를 대체 할 수 있습니다. 이 참조를보세요 - Replace “$”(dollar Sign) with “JQuery”

그러나 작동하지 않는다면 아마도 뷰 엔진을 다시 고려해야 할 것입니다.

3

한 가지 방법은 리소스 파일 (RESX)의 핸들 템플릿을 가진 일이 유사한 익명 함수에 엠버에 추가 할 것 : 전화 전에

<script type="text/javascript" src="path/to/ember.js"> 
<script type="text/javascript" src="path/to/your/app.js"> 
<script type="text/javascript"> 
    (function() { 
     Ember.TEMPLATES["your template name"] = Ember.Handlebars.compile('<%= template as string from the resource file goes here %>'); 
    })(); 

    App.initialize(); 
</script> 

이 발생해야하는 응용 프로그램의 initialize 방법

는 리소스 파일은 당신이 좋은 생각 나는 E를 사용하여 ASP.NET MVC 4 응용 프로그램에서 일하고 있어요

+1

서버 측에서 미리 컴파일 된 템플릿을 지원하려면 csharp-ember-handlebars 라이브러리 (NuGet을 통해 설치)를 사용하여 razor, haml, aspx 또는 뷰 엔진과 더 이상 충돌하지 않도록하는 것이 좋습니다. 다음은 샘플 웹 API 템플리트 (WIP)가있는 github https://github.com/Myslik/csharp-ember-handlebars의 프로젝트입니다. – MilkyWayJoe

1

다중 언어 지원 miver는 심하게 문제가 없습니다.

이중 중괄호가있는 경우 매우 쉽게 해결할 수 있습니다. 바로 @:을 사용하십시오. @: 이후의 모든 내용은 일반 텍스트로 해석됩니다. 그래서, 핸들 식이 면도기 마크 업 유효합니다 :

<ul> 
@if (Model.SomeCondition) 
{ 
    @:{{#each product in products}} 
    <li>{{product.name}}</li> 
    @:{{/each}} 
} 
</ul> 

업데이트 : 현재 내가 엠버 1.6 사용하고 있습니다 - 1.9 버전과 엠버 데이터 1.0.0 베타 - 8 - 1.0.0 - 베타 12 버전 ASP.NET MVC 5.2와 함께 - 잘 작동합니다. 곧 Ember 1.9, Ember Data 및 Handlebars 2.0의 모든 프로젝트가 마이그레이션 될 것입니다.