2017-08-30 5 views
0

での@ Content.fieldのVARを置き:https://jsfiddle.net/4hxsu4rc/2/2sxc - この単純な例ではJavaScriptファイル

<script src="myjs.js"></script>経由含まれているのjsファイル内の@ Content.myVarIntoJsFileを配置することが可能ですか? ビューテンプレート関連ファイル(_myview.cshtml)の一部ではないため、デフォルトでは機能しません。

私はこの作品を作ることができる唯一の方法は、

<script type="text/javascript"> 
function myfunction(myvalue) { 
    alert('@Content.myVarIntoJsFile' + myvalue); 
} 
</script> 

よう_myview.cshtml内部全体JSコンテンツを持つことであるが、サイズがかなり大きくなりますので、これは編集することが難しくビュー・テンプレート・ファイルを作成します。外部JSファイルで@ Content.fieldの置き換えを使用するにはどうすればよいですか?

敬具、 ジョアン

+0

評価はあなたのためにトリックを行うことができ、正直なところ、あなたはそれを使用しないでください。 –

答えて

1

は、いくつかのオプション:)

@joecraigが示唆されたものがあり、あなたのJavaScriptで使用するため、HTMLでデータを転送するために

<div data-name="@Content.Name" data-age="@Content.Age">...</div> 

のようなシステムを使用することです。これは単純なユースケースでうまく機能し、ビジネスロジックを別々のJSファイルにまとめることができます。

Pro-methodは、WebAPIを使用して、必要なデータのJSONストリームを取得して楽しむことです。基本的に、2sxcデータはすべて、jsonとして簡単に利用できます。あなたに完璧な答えを与えるためには、あなたが使っているJSフレームワークを知る必要があります。

あなたはjQueryのを使用している場合たとえば、このような何かがあなたの「カテゴリ」タイプのすべてのアイテムを取得しますが

var sxc = $2sxc(someTagInsideYourModule); 
var dataPromise = sxc.webApi.get("app/auto/content/Category"); 
dataPromise.then(function(result) { /* do something */ }); 

ます場合は、https://github.com/2sic/2sxc/wiki/WebApi

にこれについての詳細を読むことができます」 AngularJSのような他のフレームワークを使うと、Query-ServiceやContent-Serviceのようなヘルパーがいます。

PS:ログインしたときにそれ以外のコードはのみ動作します、管理者以外のユーザーのための読み取りアクセス権を有効にするために覚えて

1

それは隠されたdiv要素を作成し、コンテンツフィールドからそれにデータを置くことであろう行う一つの方法。それを取得するには、divのIDを使用します。

もっと良い方法は、data- *属性を使用してデータを保存することです(javascriptで見つけることができます)。

これは、ページソースにデータがあることに気付かないことを前提としています。

+0

まだ2sxcについて話していますか? –

関連する問題