如何将数据从服务映射到本地JSON对象

时间:2016-06-14 06:41:15

标签: angular

我有一个本地对象数组,如下所示:

<select class="marital-status" [(ngModel)]="selectedStatus" (ngModelChange)="CheckStatus($event)">
     <option *ngFor="let status of maritalStatusOptions">{{status.option}}</option>  
</select>

我从服务回复中收到用户的婚姻状况为&#34; M&#34;,这意味着他已婚。

我如何映射这个&#34; M&#34;在我的本地对象数组中&#34;已婚/国内合作伙伴&#34;

我的HTML如下:

# app/controllers/configuration_controller.rb
def update
  @a = ModelA.find(params[:model_a][:id])
  @b = ModelB.find(params[:model_b][:id])
  @c = ModelC.find(params[:model_c][:id])
  @d = ModelD.find(params[:model_d][:id])

  @a.assign_attributes(model_a_params)
  @b.assign_attributes(model_b_params)
  @c.assign_attributes(model_c_params)
  @d.assign_attributes(model_d_params)

  respond_to do |format|
    if @a.save && @b.save && @c.save && @d.save
      format.html { redirect_to :back, notice: "" }
      format.json { head :no_content }
    else
      format.json { render json: [@a.errors, @b.errors, @c.errors, @d.errors], status: :unprocessable_entity }
      format.html { render :show }
    end
  end

  private

  def model_a_params
  params.require(:model_a).permit(:id) # and other permitted params
end

#... same for the other 3 models

1 个答案:

答案 0 :(得分:1)

你的问题并不完全清楚你想要完成什么。

尝试:您可以创建一个允许从一个值到另一个值的对象

maritalStatusMap = {
        A: "Marital Status",
        B: "Divorced",
        M: "Married/Domestic Partner",
        C: "Seperated",
        D: "MI",
        D: "Single",
        E: "Widowed"
    };

然后通过将status.option传递给'M'来获取值(我假设status.optionmartialStatusMap[...]),在这种情况下会返回"Married/Domestic Partner"

<select class="marital-status" [(ngModel)]="selectedStatus" (ngModelChange)="CheckStatus($event)">
     <option *ngFor="let status of maritalStatusOptions">{{maritalStatusMap[status.option]}}</option>  
</select>