8

私は、別の開発者が ember.js フレームワークを使用してスタンドアロンのクライアント側のみのソリューションとして UI を開発したプロジェクトに取り組んでいます。

この作業を ASP.NET MVC3 プロジェクトに移すように依頼されました。

問題は、ember.js が構文で中括弧と二重中括弧を使用しており、これが MVC3 で使用される剃刀エンジンに干渉しているように見えることです。

2 つのテクノロジ (ASP MVC3 と ember.js) は連携できないという考えは正しいですか?

4

4 に答える 4

3

1 つのアプローチは、リソース ファイル (resx) にハンドルバー テンプレートを配置し、次のような無名関数でそれらを Ember に追加することです。

<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

多言語サポートがある場合は、リソース ファイルもお勧めです。

于 2012-07-04T17:49:30.993 に答える
1

私は、Ember を頻繁に使用する ASP.NET MVC 4 アプリケーションに取り組んでおり、問題はありません。

二重中括弧の場合は、非常に簡単な回避策があります: を使用するだけ@:です。以降はすべて@:プレーンテキストとして解釈されます。したがって、handlebars 式を含むこの剃刀マークアップは有効になります。

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

更新: 現在、Ember 1.6 - 1.9 バージョンと Ember Data 1.0.0-beta-8 - 1.0.0-beta-12 バージョンを ASP.NET MVC 5.2 で使用しています。近日中に、最新の Ember 1.9、Ember Data、Handlebars 2.0 のすべてのプロジェクトを移行します

于 2014-06-24T17:19:00.763 に答える
1
于 2012-07-04T15:26:40.940 に答える
-1

http://weblogs.asp.net/scottgu/archive/2010/12/15/asp-net-mvc-3-razor-s-and-lt-text-gt-に詳述されているブロックを使用できるはずです 。 syntax.aspxを使用して、ember テンプレートをラップし、正しく使用できるようにします。

そうは言っても、これを行うことで顧客の要件を実際に満たすことはできません。通常の ASP.Net MVC 開発者は、このコード ベースを操作するために ember.js を学習する必要があります。実際にすべきことは、モデルや部分ビューなどからページを作成するなど、ASP.Net MVC の概念を使用して書き直すことです。

于 2012-07-04T13:05:40.943 に答える