2016-03-23 17 views
-1

xpathを使用してdivを追加したい場合、親テンプレートを継承します。xpathを使用して別のdivコンテンツとdivを追加する

ex。 すべてのコンテンツが簡単です交換またはカスタムテンプレートに、すべてのコンテンツをコピーしながら、これは私が

<template id="product_custom" inherit_id="parent_id"> 
    <xpath expr="//div[@id='product']" position="after"> 
     <div class="inner"> 
    </xpath> 
</template> 

、私はこれを試して

<template id="parent_id"> 
    <div id="product"> 
     <div class="inner"> 
      <div class="container"> 
       <!-- THERE IS SOME CONTENT --> 
      </div> 
     </div> 
    </div> 
</template> 

、次のように変更したい親テンプレート

<template id="parent_id"> 
    <div id="header"> 
     <div class="container"> 
      <h1> HEADER </h1> 
     </div> 
    </div> 
    <div id="product"> 
     <div class="container"> 
      <!-- THERE IS SOME CONTENT --> 
     </div> 
    </div> 
</template> 

ですしかし、それは適切な方法ではありません。私はコンテンツにdivをラップしたい。

答えて

0

私はあなたがコンテンツをオーバーライドするか、選択した要素の内側の上にあなたの<div/>を置くことになるので、あなたはそれを行うことはできないと思います。

簡単な解決方法は、innerposition="attributes"を使用してid="product" divに割り当てることです。あなたが本当にこれを必要とする場合は、可能な解決策は、次のとおりです。

  1. は、第二のオーバーライドで、独自のテンプレートを定義し、それ
内のオリジナルのものを呼び出す attributes位置
  • を使用して1つのオーバーライドでclass="inner"id="product"を置き換えます

    あなたはこのようなものに終わるだろう:

    <template id="my_parent" inherit_id="foo.parent_id"> 
        <div id="product"> 
         <t t-call="foo.parent_id" /> 
        </div> 
        </template> 
    

    プラス属性のオーバーライド。上記のコードはテストされていませんが動作する可能性があります;)

  • +0

    ありがとうございます。私は 'position ="属性を試してみました。あなたの別の解決策は問題を解決するのは素晴らしいですが、私の場合はうまくいきません。 –

    +0

    あなたはこれについてさらに詳しい情報を提供できますか? w/outの例私は助けることができません。 – simahawk

    +0

    私の質問が更新されます。親テンプレートには、より多くのコンテンツが存在する可能性があります。私は特定のコンテンツをラップしたいので、 't-call'は動作しないと思う。 –

    関連する問題