問題タブ [nvelocity]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
232 参照

castle-monorail - モノレールとNVelocityでネストされたViewComponentsを作成するにはどうすればよいですか?

私たちが管理しているウェブサイトのメニューを更新するように頼まれました。このウェブサイトでは、CastleWindorsモノレールとNVelocityをテンプレートとして使用しています。メニューは現在、li要素をレンダリングするViewComponentのカスタムメイドのサブクラスを使用してレンダリングされています。現時点では(水平)レベルは1つしかないため、現在のメカニズムは問題ありません。

既存のメニューのいくつかにドロップダウンメニューを追加するように求められました。モノレールとNVelocityを見たのは初めてなので、少し迷っています。

現在存在するもの:

次のようなネストされたMenuComponents(または新しいSubMenuComponent)を持つことは可能ですか?

MenuComponentのオーバーライドされたRenderメソッド内にサブメニュー(ul要素とli要素)を描画する必要があるため、ネストされたViewComponent派生物を使用しても機能しない場合があります。可能であれば、メニューを作成するための基本的に宣言型のメソッドを維持するメソッドが欲しいです。

編集:Context.RenderBody()を使用して、ネストされたViewComponent派生物をレンダリングできますが、それらは親の前にレンダリングされています。サブメニューのレンダリングは、どういうわけか親と同じ出力にフックする必要があると思いますか?

0 投票する
1 に答える
522 参照

velocity - NVelocity で末尾のバックスラッシュをエスケープする方法

サーバーに対して実行される前に、さまざまな PowerShell スクリプトを処理するために NVelocity を使用しています。

私の質問は、変数の末尾にあるバックスラッシュをエスケープする方法です:

例えば

$computername は実行時に有効なコンピューター名に置き換える必要がありますが、末尾のバックスラッシュ (\c$) はそうでないことを意味します。

ありがとうベン

0 投票する
1 に答える
682 参照

c# - スタンドアロンのフォーミュラ エバリュエーターとしての NVelocity (または Velocity)

アプリケーションで NVelocity を使用して HTML メールを生成しています。私のアプリケーションにはイベント ドリブン モデルがあり、オブジェクトの保存や更新によってこれらの電子メールが送信されます。各イベントは、ゼロ、1 つ、または複数の複数の電子メールをトリガーできます。

コードを変更せずに、実行時に送信される電子メールを構成できるようにしたいと考えています。これを行うには、NVelocity #if() ディレクティブを活用できると考えていました。これが私の考えです...

ステップ 1) 電子メールを送信する前に、管理者は NVelocity が評価する数式を構成する必要があります。例えば:

ステップ 2) オブジェクトが保存または作成されると、入力式に基づいてメモリ内に NVelocity テンプレートが作成されます。例えば:

ステップ 3) テンプレートに対してメモリ内の NVelocity エンジンを実行します。結果を確認して、メールを送信する必要があるかどうかを確認します。

これは NVelocity が意図したものとは正確には異なりますが、うまくいくかもしれないと思います :) このようにすることの利点の 1 つは、テンプレート内で使用されるのと同じ構文を式に使用できることです。

注意や提案はありますか?上記のようにフープを飛び越えずに #if() ディレクティブを実行する方法はありますか? 式の構文を事前に検証するための推奨される方法はありますか?

ありがとう。

0 投票する
2 に答える
70 参照

nvelocity - nVelocityに2つの値を追加すると、常にゼロが返されるのはなぜですか?

速度に2つの値を追加しようとしていますが、常に0が返されます。何が間違っているのでしょうか。

$orderItem.ExtendedPriceと$discountAmountはどちらも、次のように小数を含む整数です:99.99

0 投票する
1 に答える
150 参照

nvelocity - NVelocityテンプレートで、プロパティの存在をどのようにテストしますか

単純なNVelocityテンプレートを作成していますが、変数の存在をテストする方法がわかりません。この例では、コンテキストにUserというプロパティが含まれているかどうかをテストします。

ハッキングされたforeachループと同じ機能を実装できることは知っていますが、もっと良い方法があるかどうか疑問に思っていました。

0 投票する
1 に答える
153 参照

.net - NVelocity で " をエスケープする

NVelocity で "をエスケープするにはどうすればよいですか?

例 test.message = "136# 1/4" テスト テスト テスト"

私が行った場合<input type="text" id="Test.Description" value="$test.message"/>

それは表示します: 136# 1/4

私が行った場合<input type="text" id="Test.Description" value=$test.message/>

表示されます:136

私が行った場合<input type="text" id="Test.Description" value='$test.message'/>

それは表示します: 136# 1/4" テスト テスト テスト しかし、それはエスケープします '

何もエスケープせずに 136# 1/4" Test Test Test を表示するにはどうすればよいですか?

0 投票する
1 に答える
1228 参照

c# - 評価されたパラメーターを使用してメソッドを呼び出すための NVelocity 構文

メソッド呼び出しを行う必要があるかなり単純なテンプレートがあります。ただし、NVelocity は、それ自体がNVelocity 変数であるメソッド パラメーターを評価しないようです。次の NVelocity テンプレートを使用します。

上記のテンプレートで$extensionMethodsは、 はクラスのインスタンスとして渡され、評価された数値を渡すとうまく機能します (たとえば$extensionMethods.TestMethod(4)、毎回機能します)。ただし、 using を使用する$var1と、文字列全体がそのまま返されます: $extensionMethods.TestMethod(${var1})

上記のテンプレートを正しく評価するために変数を遅延してメソッドに渡す方法はありますか?

0 投票する
3 に答える
2731 参照

c# - NVelocity の for ループ

NVelocity は #for ループをサポートしていますか? ドキュメントを調べたところ、#foreach ループしか見つかりませんでした。

2次元配列をループしたい。

0 投票する
2 に答える
478 参照

formatting - NTidyおよびその他のポートの代わりに、カスタムトークンを使用してhtmlをフォーマットする必要があります

いくつかのhtml/nvelocityテンプレートを(自動化され、アプリケーションで)フォーマットしようとしています。Tidyがこれに対する答えのようですが、すべての.Netポートには問題があり、十分に保守されていないようです。ほとんどの場合、内部で管理されていないコードに依存しており、プロジェクトに他の制限を課し始めます。

たとえば、http://www.codeproject.com/KB/mcpp/eftidynet.aspxに関連付けられたコードを使用するには、プロジェクトをx86ビルドにする必要があります。

これを行うための新しい好ましい解決策はありますか?または、nvelocityを理解する、またはカスタムトークン定義を許可するTidyHtmlの完全に管理されたポートはありますか?

0 投票する
1 に答える
561 参照

castle-monorail - NVelocityはforeach.countをサポートしていますか?

CastleプロジェクトのNVelocityを使用しており、速度の仕様に従って、次のようにループカウンターにアクセスできるはずです。

しかし、動作させることができないので、NVelocityに実装されていないのではないかと思います。

誰かがこれを確認できますか?