0

Geddy フレームワークで EJS (埋め込み JavaScript) を使用して選択要素を作成しようとしています。私がやりたいことは、次のようなものです(単なる例):

<select>
  <option value="int"> Integer </option>
  <option value="float"> Single precision decimal point </option>
</select>

例が見つかりません...次のような選択を作成することは知っています

<select>
  <option value="X"> X </option>
  <option value="Y"> Y </option>
</select>

私は書かなければならない

<%- contentTag('select', ['X', 'Y']} %>

しかし、私が欲しいものを手に入れる方法は?

アップデート:

EJSドキュメントでselect_tagを見つけましたが、認識されません...次のようなハイブリッドも試しました

<%- contentTag('select', [{value: NumberTypeEL.NonNegativeInteger, text:'nonnegative integer'}, {value: NumberTypeEL.Integer, text: 'integer'}, {value: NumberTypeEL.Decimal, text: 'decimal'}, {value:NumberTypeEL.Fraction, text:'fraction'}], {class:'span6', name:'numberType'}) %>

しかし、まだ何もありません。他のアイデアはありますか?

4

1 に答える 1

2

新しいバージョンには、新しい selectTag があります。参照した EJS の例のように機能するため、オブジェクトの配列を渡すことができます。また、selectedOption を指定することもできます。引き続き使用できcontentTag("select"...)、オブジェクトの配列で機能しますが、contentTag ではオプションを選択できません。

これを行うもう 1 つの方法は、 contentTag を使用して、次のような配列の代わりに文字列を渡すことです。

contentTag('select', "<option value=\"1\" selected>Text 1</option>");

geddyjs.org/documentationのドキュメントを見て、探してください。selectTag

注: ドキュメントは夜間に更新されるため、そこにアクセスしたときにそこにない可能性があります。今のところコピーしています。

selectTag

`selectTagString(optionsArray, selectedOption, htmlOptions)

指定された を使用して HTML 選択タグをoptionsArray作成し、HTML オプション要素を作成します。

optionsArray文字列、数値の配列、または値属性とオプション要素のコンテンツにそれぞれ使用される値とテキストのプロパティを持つオブジェクトを指定できます。

例:
selectTag(['geddy', 'alex', 'neil'])
// => '<select><option value="geddy">geddy</option><option value="alex">alex</option><option value="neil">neil</option></select>'

selectTag(['open', 'close'], todo.status, { class:'span6', name:'status' })
// => '<select class="span6" name="status"><option selected="selected" value="open">open</option><option value="close">close</option></select>'

selectTag([{value: 1, text: "Text 1"}, {value: 2, text: "Text 2"}], 2)
// => <select><option value="1">Text 1</option><option selected="selected" value="2">Text 2</option></select>
于 2013-03-13T00:58:13.763 に答える