Backbone.jsに基づいてJavascript/HTMLテンプレートを取得しました。次appendはBackbone.jsに基づくフォームには何の効果もありません
var ComposeView = Backbone.View.extend({
template: _.template($('#compose-view-template').html()),
attributes: {
id: 'compose-view',
class: 'compose-view'
},
events: {
"click #compose-save-button, #compose-send-button, #compose-discard-button": 'backToFolders'
},
render: function() {
$('#widget-email-header').html(
'<h5>Nouvel <span class="fw-semi-bold">Email</span></h5>'
);
$('#folder-stats').addClass('hide');
$('#back-btn').removeClass('hide');
this.$el.html(this.template(this.model.toJSON()));
this._initViewComponents();
return this;
},
backToFolders: function(){
App.showEmailsView();
},
_initViewComponents: function(){
this.$("textarea").wysihtml5({
html: true,
customTemplates: bs3Wysihtml5Templates,
stylesheets: []
});
}
});
Javascriptをされています:
$(document).ready(function() {
var listItems = '<option selected="selected" value="0">- Select -</option>';
console.log("Preparing Auto Fill of DropDown list for email adresses");
for (var i = 0; i < jsonData.Table.length; i++) {
listItems += "<option value='" + jsonData.Table[i].stateid + "'>" + jsonData.Table[i].statename + "</option>";
}
$("#input-to").append(listItems);
});
<script type="text/template" id="compose-view-template">
<form id="email-compose" class="form-email-compose" method="get" action="">
<div class="form-group">
<select type="email" id="input-to" placeholder="To" class="input-transparent form-control">
</select>
</div>
<div class="form-group">
<input type="text" id="input-subject" placeholder="Subject" class="input-transparent form-control"
value="<%= subject %>">
</div>
<div class="form-group">
<textarea rows="10" class="form-control" id="wysiwyg" placeholder="Message"><%- body %></textarea>
</div>
<div class="clearfix">
<div class="btn-toolbar pull-xs-right">
<button type="reset" id="compose-discard-button" class="btn btn-gray">Annuler</button>
<button type="submit" id="compose-send-button" onClick="fillEmailDropDown()" class="btn btn-danger"> Envoyer </button>
</div>
</div>
</form>
</script>
バックボーンの一部は以下の通りです:私は、次の形式のフィールドでダイナミックなドロップダウンリストを追加する必要があります
残念ながら、.appendは選択フォームに影響を与えず、ドロップダウンは空のままです。 私はまた、同じ結果を追加する代わりに.htmlを使用しようとしました。
私はselectタグでオプションを手動で追加している場合は、それが適切に動作しますが、私は動的にそれを埋めるために必要があります...
任意のアイデア?
バックボーンビューを初期化したコードはどこですか?追加するコードの前にビューが初期化されていることを確認するにはどうすればよいですか? –
あなたはそうです、私の気持ちです。ビューが初期化される前に追加が加えられますが、Backbone.jsはまったく分かりませんが、バックボーンの初期化がどこにあるのかは分かりません。残念です.... – tiamat
あなたのIDEで '新しいComposeView'のようなものを検索してください。これは、ビューを初期化するファイルになります。 'append'を使ってあなたのファイルがブラウザーの後ろにロードされていることを確認する必要があります。 –