問題タブ [view-templates]
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.
ruby-on-rails - <% %> の代わりに <% -%> を使用する場合
Railsビューのいくつかの行で、これが使用されていることに気付きました:
それ以外の:
違いはなんですか?
c# - EditorTemplate を使用しない UIHint
私はこのようなモデルを持っています:
次に、Charities.cshtml という名前の EditorTemplate があります。
次に、私のページで:
ただし、いずれにせよ、Charities テンプレートはレンダリングされません。私はこれについて頭を悩ませてきましたが、うまくいくはずです..しかし、そうではありません。
何か案は?
編集:
問題は、UIHint があっても、既定の Object テンプレートがそれ自体以外の複雑なオブジェクトをレンダリングしない (いわゆる浅いダイビング) ことです。UIHint を使用するとテンプレートがレンダリングされるという印象を受けましたが、明らかに間違っていました。
修正は、モデル自体をレンダリングさせないようにすることです。それは悲しいことです。
javascript - サーバーで部分ビューをレンダリングするか、jsonデータを送信してクライアントでテンプレートをレンダリングします
Webアプリケーションで部分ビューをレンダリングするための良いアプローチ(または推奨されるアプローチ)は何でしょうか。
AJAXを使用して既にレンダリングされたページにデータをロードする必要があるという要件があります。これは、サーバーからより多くの情報を取得して下部にレンダリングする、ページの最後にある「Loadmore...」リンクのようなものです。ページ。
私が現在AJAX応答のために遊んでいる2つのオプションは次のとおりです。
- データのJSON表現を返し、クライアント側のテンプレートライブラリ(jQueryテンプレートなど)または単なるJavaScriptを使用してJSONをHTMLに変換し、ページの下部に追加します
- サーバー上で部分ビューをレンダリングし(私の場合はgrails'を使用
render template:'tmplt_name'
)、それをネットワーク経由で送信し、結果をページの下部に追加します
これを行う他の方法はありますか?そうでない場合は、上記のオプションを考えると、メンテナンス、パフォーマンス、およびテスト容易性の点で優れていますか?私が確信していることの1つは、JSONルートは(ほとんどの場合)ネットワークを介してhtmlを送信するよりも少ない帯域幅を使用するということです。
cakephp - CakePHP-ビューテンプレート-フェッチされたコンテンツのデフォルト値?
これは、本の中で、単純なビューテンプレートの例です。
そして、これはそれがどのように拡張されるかです
私の質問は次 のとおりです。必要に応じて上書きするために、タイトルのデフォルト値/コンテンツ(たとえば)を設定するにはどうすればよいですか?
ありがとうございました!
ruby-on-rails - RABL を使用してネストされたリソースをモデル化する方法は?
ここに示すように、Rails プロジェクトでネストされたルートをセットアップしたいと考えています。
RABL テンプレートを使用して JSON コンテンツをレンダリングします。child
RABLの要素の目的を誤解している可能性があります。私が理解している限り、以下に示すように、RESTful なパスにはなりません。一方、RABL がネストされたリソースをサポートしていないかどうか教えてください。
... などのネストされたルートの JSON を出力するにはどうすればよいですか? ルートに一致する RABL テンプレートを作成するにはどうすればよいusers/:id/places
ですか?
ユーザー情報を表示したくありません。次のパスを介してユーザー データを取得することはできません。
プロジェクトでは、CanCan 1.6.9 を使用しています。および工夫2.2.3。
asp.net-mvc - テーブルの代わりに webgrid を使用した ASP.NET MVC テンプレート
の代わりに WebGrid を使用する Asp.net MVC ビュー テンプレートはあり<table>
ますか?
javascript - このRails 4メソッド呼び出しをAJAX化しようとすると、500エラーが発生します
ビューにテーブルがあります: views/uploads/index.html.erb
これが部分的な「_upload.html.erb」です
バックグラウンド ジョブが実行され、テーブルの値が変更されると、このテーブルを更新しようとしています。
このために、次のセットアップがあります。1) 私の upload_controller.rb には、次のメソッドがあります。
2) uploads.js.coffee にこのコードを追加しました
3) 次のコードで「refresh_table.js.erb」ファイルを追加しました
4) 最後に、次の行を最後の行としてルート ファイルを更新しました。
サーバーを再起動し、テーブルの値を更新するバックグラウンド ジョブを開始しました。Chrome で JavaScript コンソールを実行しましたが、これらの行が 1 秒ごとに表示されるだけです
何が悪いのかわからない。私はAJAXが初めてなので、誰かが私にこれを手伝ってくれるかどうか疑問に思っていました。ありがとう
更新: 以下に投稿された解決策を試した後、これは私の routes.rb のようになります:
そして、これが私の Chrome ブラウザーに表示される [ネットワーク] タブの画像です。
コンソール タブは次のようになります。
サーバー コンソールの出力:
ネットワークのプレビュー タブ:
プレビュー タブ:
c# - ASP.NET MVC の IEnumerable モデルでカスタム エディター テンプレートを使用するための正しい慣用的な方法
この質問は、 Why is my DisplayFor not looping through my IEnumerable<DateTime>?のフォローアップです。
ささっとリフレッシュ。
いつ:
- モデルにはタイプのプロパティがあります
IEnumerable<T>
Html.EditorFor()
ラムダ式のみを受け入れるオーバーロードを使用して、このプロパティを渡しますT
Views/Shared/EditorTemplates の下にタイプのエディター テンプレートがあります。
次に、MVC エンジンは、列挙可能なシーケンス内の各項目のエディター テンプレートを自動的に呼び出し、結果のリストを生成します。
たとえば、Order
プロパティを持つモデル クラスがある場合Lines
:
ビュー Views/Shared/EditorTemplates/OrderLine.cshtml があります。
@Html.EditorFor(m => m.Lines)
次に、最上位ビューから呼び出すと、1 つだけでなく、各注文行のテキスト ボックスを含むページが表示されます。
ただし、リンクされた質問でわかるように、これは の特定のオーバーロードを使用する場合にのみ機能しますEditorFor
。テンプレート名を指定すると (クラスにちなんで名付けられていないテンプレートを使用するためにOrderLine
)、自動シーケンス処理は行われず、代わりに実行時エラーが発生します。
その時点で、カスタム テンプレートのモデルを として宣言しIEnumebrable<OrderLine>
、何らかの方法でそのアイテムを手動で繰り返し処理して、すべてを出力する必要があります。
そして、そこから問題が始まります。
この方法で生成された HTML コントロールは、すべて同じ ID と名前を持ちます。後でそれらを POST すると、モデル バインダーは の配列を作成できなくなりOrderLine
、コントローラーの HttpPost メソッドで取得するモデル オブジェクトは になりますnull
。
これは、ラムダ式を見ると理にかなっています。実際には、構築中のオブジェクトがモデル内の元の場所にリンクされているわけではありません。
アイテムを反復処理するさまざまな方法を試しましたが、テンプレートのモデルを次のように再宣言し、次のようIList<T>
に列挙することが唯一の方法のようfor
です。
次に、トップレベル ビューで:
これにより、送信時にモデル バインダーによって適切に認識される適切な名前の HTML コントロールが提供されます。
これは機能しますが、非常に間違っているように感じます。
EditorFor
エンジンがモデル バインダーに適した HTML を生成できるようにするすべての論理リンクを保持しながら、カスタム エディター テンプレートを で使用する正しい慣用的な方法は何ですか?
orchardcms - オーチャード ビュー テンプレートのオーバーライド
ログインページ(~/Modules/Orchard.Users/Views/LogOn.cshtml)のhtml/cssをカスタマイズ/変更したい。
テーマ フォルダー (Themes - MyCustomTheme - Views - LogOn.cshtml) の下に同じ名前の cshtml ファイルを作成しました。これはうまくいきませんでした。カスタム テーマからメインの LogOn.cshtml をオーバーライドするにはどうすればよいですか?
編集:
シェイプ トレーサーを有効にすると、次のように表示されます。
アクティブなテンプレート: ~/Modules/Orchard.Users/Views/LogOn.cshtml </p>
代替 (1): ~/Themes/SafeMode/Views/LogOn.cshtml
ありがとう。