2012-04-13 6 views
0

これには非常に小さく簡単な継承や拡張のソリューションがあると私は知っていますが、私はこの質問が私だけではなく有益であることを願っています。そして、より速く。JavaScriptオブジェクトリテラルを使用して作成したウィジェットを設定する際に、コードの重複を避けるにはどうすればよいですか?

Kendo UI gridを設定する次のコードを入力します。 transport.read.dataオブジェクトの1つのパラメータの違いを除いて、同じビューの2つのグリッドに対してこのコードを正確に繰り返す必要があります。私はmodelcolumnsの定義を共有オブジェクトに分解することができますが、最終的にグリッド全体の設定を共有したいと思います。おそらくmyUserKendoGridと呼ばれるjQueryの拡張機能ですか?

$("#availableUsersGrid").kendoGrid({ 
     dataSource: { 
      transport: { 
       read: { 
        url: "/Role/AvailableUsersJson", 
        data: { roleId: $("#Id").val() }, 
        type: "GET" 
       } 
      }, 
      schema: { 
       model: { 
        id: "Id", 
        fields: { 
         Id: { editable: false }, 
         UserName: { editable: false }, 
         EmployeeRefNum: { editable: false }, 
         EmployeeSurname: { editable: false }, 
         EmployeeFullNames: { editable: false } 
        } 
       } 
      } 
     }, 
     columns: [ 
       { field: "UserName", title: "User Name" }, 
       { field: "EmployeeRefNum", title: "Emp. No." }, 
       { field: "EmployeeSurname", title: "Surname" }, 
       { field: "EmployeeFullNames", title: "Name" } 
     ], 
     selectable: "multiple, row", 
     editable: false, 
     sortable: true, 
     pageable: true 
    }); 

答えて

0

あなたは、単にjQueryの.extend()メソッドを介して設定を複製することができます。たとえば、

var superDuperAwesomeConfiguration = { 
    // moar configs go here, yo! 
}; 

var copyCatConfigs = jQuery.extend(true, {}, superDuperAwesomeConfiguration); 

// modify copyCatConfigs properties here 

$("#gridA").kendoGrid(superDuperAwesomeConfiguration); 
$("#gridB").kendoGrid(copyCatConfigs); 
+0

ありがとうございます。 jQuery用の私のドキュメントは、深い拡張のための署名 'jQuery.extend([deep]、target、object1、[objectN]):Object'を私に与えます。これは最初のparamが' true' 。確かに 'superDuperAwesomeConfiguration'がターゲットであるため、その場合は2番目のパラメータですか?私のjQuery /金曜日のお金を払う。 – ProfK

関連する問題