0

私はこのようなコードを持っています:

  function () {
    var field=$('#bomPartModels').val(); 
    START.bom.addIcons({

        "ABC123-2":  {"name": "", "qty": 4, "image": "images/UK_OO_HR2000_IT.jpg", "incart": 0, "model": []},
        "ABC123-3":  {"name": "Downconverter Mixer", "qty": 16, "image": "images/UK_Universal_Cable_Adaptors_IT.jpg", "incart": 0, "model": []},
      });
  });
});

bomPartModels は Java Bean オブジェクトのリストであり、各 Bean には名前、数量のイメージなどが含まれています。これは、モデルに追加するコントローラーから返されました。

START.bom.addIcons の静的な値を、bomPartModels オブジェクトから読み取った動的な値に置き換える必要があります。これどうやってするの?

4

2 に答える 2

0

jQuery 拡張機能を使用して、デフォルト オブジェクトの値を、受信したオブジェクトに含まれる on に置き換えることができます。

http://api.jquery.com/jQuery.extend/

fullobject = $.extend({}, static_object, dynamic_object));
于 2013-11-13T10:38:42.280 に答える
0

基本的にやりたいことは、現在の静的オブジェクト リテラルの代わりに、JSP ページでその JavaScript オブジェクトの正しい JSON 表現を生成することです。したがって、JSP では、コードのそのセクションは次のようになります。

function () {
    var field=$('#bomPartModels').val(); 
    START.bom.addIcons(
        // code to generate JSON here
    );
});

その// code to generate JSON here部分が面白くなるところです。これを行う方法はいくつかありますが、やりたくないことは、手動で生成しようとすることです。それは、エラーが導入され、最終的にうまくいかないことを求めているだけです。

個人的には、JSP で JSON コンテンツを生成する必要があるときはいつでもjson-taglibを使用します。それは次のようになります。

START.bom.addIcons(<json:object>
    <c:forEach items="${bomPartModels}" var="bpm">
        <json:object name="${bpm.id}">
            <json:property name="name" value="${bpm.name}"/>
            <json:property name="qty" value="${bpm.qty}"/>
            ... // other properties
        </json:object>
    </c:forEach>
</json:object>);

これの欠点は、JavaScript コードを JSP の内部に配置するように制限されているため、それが機能することです。

于 2013-11-13T14:22:23.653 に答える