そのため、いくつかの新しい jQuery Mobile 手法に行き詰まっています。必要に応じて喜んで詳細を追加しますが、これをより高いレベルに維持しようとしています. 簡単にするために、ここにワークフローがあります
- フォームに記入して送信することで「もの」を作成するページ 1
- まだ1ページ目 次に、「もの」を検索すると、すべての素敵なJSONがテーブルに返されます
- 素敵なテーブルで、編集ボタンを押して「もの」を編集できます
これは私が立ち往生しているところです。新しいページのスケルトンを作成できますが、フォームに JSON を再入力できません。console.log を実行して、新しいページに移動していることを確認できるので、アクセス可能です (ただし、新しいページの jqm の概念は多少異なりますか?)
$(function(){
$('.resultsLocation').on('click', '.editLocation', function(){
var ID = $(this).parent().siblings(':first').text();
var wrapper = {};
var location = {};
wrapper.location = location;
location.id = ID;
$.ajax({
type: 'POST',
url: '/web/service/' + 'locationService' + '/' + 'getLocation',
dataType: 'json',
async:false,
data: JSON.stringify(wrapper),
success: function(msg) {
var newPage = $("<div data-role='page' id='page' data-theme='a'>" + "<div id='content' data-role='content'>" + "<div data-role='fieldcontain'><label for='name'>Name</label><input type='text' name='name' id='name'>" + "</div> </div></div>" );
var Name = msg.location.name;
newPage.appendTo($.mobile.pageContainer);
if(msg.success) {
$.mobile.changePage('#page');
//passes entire JSON string
console.log(JSON.stringify(msg.location));
//one more time to make sure
console.log('NEW PAGE' + Name);
//not populating field w/value
$("#name").val(Name);
}
},
error: function(msg) {
alert('oh shit');
}
});
});
});
次の質問があります。
- これを行うより良い方法はありますか?別の (別のファイル) テンプレート化されたページにユーザーを送信したいですか?
- 編集するデータは、作成するために記入したのと同じフォームに入力されるため、何らかの方法でフォームを複製した方がよいでしょうか (.clone() が正しいかどうかはわかりません - 私が試したときに奇妙な問題がありました) - する必要がありますvar newPage にすべての HTML マークアップを記述するよりも優れた方法
- データをログに記録できるのにアクセスできないのはなぜですか
$('#name').val(Name);