jstreeで使用する4 jstree 1.0使用-元の不完全な箇所を修正
2991 ワード
jqueryとjavascriptはプログラムの順位のために何の変化もなく、彼らは依然として十分な活力で、web開発の中で馬を走らせている.railsとrubyも同じで、タイムリーに鈍刀で、使い慣れて、それは牛を解くことができて、しかもこの2 Rはサッカー場のすべてのロナウドのように、鋭くて比類がありません.要するに、オープンのように、ソフトウェア開発者、チームの終身信条であることを堅持します.
くだらない話が山ほどありますが、ここではjstreeの前に採用したnodeを作成するトランスフォーム方法を修正します.
1.まずtreeを示す場合、すべてのnodeのstatusをclosedに設定できないことを明確にし、childがあればclosedに設定し、childがなければopenedに設定する.
privateメソッドを次のように変更します.
2.上記の作業を行うだけで問題があります.作成したツリーノードが現れたり、消えたりして、作成に成功していないような気がします.リフレッシュすると、この新しいノードが安定して現れ、ライブラリに保存されていることを示します.ノードの削除、ノードの変更はすべてそうです.この3つのactionについて、次のように変更します.
renderコードを追加し、jsonフォーマットに合致するように送信します.
これらのデータはjavascriptのフロントエンドに着きました.
3.postというajaxメソッドでパラメータを構成する必要がある場合、functionの後にデータフォーマット「json」を構成し、前に漏れた構成内容を追加します.次はremoveのコードです.createもrenameもそうする必要があります.
これで添削してもいいです.
くだらない話が山ほどありますが、ここではjstreeの前に採用したnodeを作成するトランスフォーム方法を修正します.
1.まずtreeを示す場合、すべてのnodeのstatusをclosedに設定できないことを明確にし、childがあればclosedに設定し、childがなければopenedに設定する.
privateメソッドを次のように変更します.
def get_region_tree_json(regions)
json_data = String.new
json_data += "["
regions.each do |region|
unless region.child_regions.blank?
json_data += "{\"data\":\"#{region.name}\",\"attr\":{\"id\":\"#{region.id}\"},\"state\":\"closed\"}"
else
json_data += "{\"data\":\"#{region.name}\",\"attr\":{\"id\":\"#{region.id}\"},\"state\":\"opened\"}"
end
json_data += "," unless region == regions.last
end
json_data += "]"
return json_data
end
2.上記の作業を行うだけで問題があります.作成したツリーノードが現れたり、消えたりして、作成に成功していないような気がします.リフレッシュすると、この新しいノードが安定して現れ、ライブラリに保存されていることを示します.ノードの削除、ノードの変更はすべてそうです.この3つのactionについて、次のように変更します.
def create
@region = Region.create(
:parent_region_id=>params[:id],
:name=>params[:name],
:creator_id=>current_user.id
)
render :text =>"{\"id\":\"#{@region.id}\",\"status\":\"1\"}"
end
def update
if Region.find(params[:id]).update_attributes(:name=>params[:name])
render :text => "{ \"status\" : 1 }"
else
render :text => "{ \"status\" : 0 }"
end
end
def destroy
region = Region.find(params[:id])
if region.child_regions.blank?
if region.destroy
render :text => "{ \"status\" : 1 }"
else
render :text=> "{ \"status\" : 0 }"
end
else
flash[:notice] = " "
end
end
renderコードを追加し、jsonフォーマットに合致するように送信します.
これらのデータはjavascriptのフロントエンドに着きました.
3.postというajaxメソッドでパラメータを構成する必要がある場合、functionの後にデータフォーマット「json」を構成し、前に漏れた構成内容を追加します.次はremoveのコードです.createもrenameもそうする必要があります.
.bind("remove.jstree", function (e, data) {
$.post(
"/admin/regions/destroy",
{
"id" : data.rslt.obj.attr("id")
},
function (r) {
if(!r.status) {
$.jstree.rollback(data.rlbk);
}
},
'json'
);
});
これで添削してもいいです.