2014-01-22 59 views
1

我使用x-editable來允許用戶將自己關聯到另一個模型。樣式根據用戶所關聯的模型類型而改變。x-editable保存後重新渲染部分保存

現在,它可以工作,但只有刷新頁面後,css類纔會更改。

如何在x-editable保存新值後重置css類?

這是我輸入的樣子 - >

== editable user, :heat_id, url: admin_user_path(user), type: "select", value: (user.heat.level if user.heat), source: Heat.all.map{ | heat | {value: heat.id, text: heat.level} }, class: "#{user.heat.badge if user.heat}" 

我基本上需要重新申請

class: "#{user.heat.badge if user.heat}" 

更新

我想通了,X-編輯護欄實際上是內置的。解決方案是編寫 - >

== editable user, :heat_id, url: admin_user_path(user), type: "select", value: (user.heat.level if user.heat), source: Heat.all.map{ | heat | {value: heat.id, text: heat.level} }, classes: Hash[Heat.all.map{ | heat | [heat.id, heat.badge]}], class: "#{user.heat.badge if user.heat}" 

但是,我仍然不知道如何在使用ajax保存後更改元素。

例如,我想要做的是在保存事件之後重新渲染部分「進度」。

我該怎麼做呢?

回答

1
$('.profile_editable').on('save', function(e, params) { 
    var progress_value = params.response.progress_value 
    $('.progress_title').text("Your profile is " + progress_value + "% completed") 
    $('.bar').css('width', progress_value + '%'); 
}); 

然後,通過信息在JSON響應 - >

def update 
    @common_app = CommonApp.find(params[:id]) 
    if @common_app.update_attributes(common_app_params) 
     respond_to do |format| 
     format.html { render :action => "show" } 
     format.json { render json: {success: true, progress_value: @common_app.user.progress, user_name: @common_app.user.name } } 
     end 
    else 
     render json: {errors: @common_app.errors}, status: 400 
    end 
    end