0

変数cに設定した URL を連結する Javascript 関数がいくつかあります。次に、その変数を jQote2 に渡そうとします。

$.get("emptyReq.tpl", function(tmpl,c) {
  $("#reqs").jqoteapp(tmpl, result, c);
});

emptyReq.tmpl では、次のことを行っています。

<tr id="row">
  <td name="id" class="id"><a href="<%=this.c%>"><%= this.FormattedID %></a></td>
  <td name="name" class="name"><%= this._refObjectName %></td>
  <td name="state" class="state"><%= this.ScheduleState %></td>
  <td name="owner" class="owner"></td>
</tr>

いくつかのバリエーション (this.c と c) を試し、さまざまな変数も試しましたが、URL を正しく表示することができません。

cはコンソールで undefined とラベル付けされ、URL はhttp://127.0.0.1/xampp/py2/undefinedのようになり、実際のcはhttps://rally1.rallydev.com/のようになります。 slm/rally.sp#/2735190513d/detail/userstory/4599269614

パラメータを適切に渡す方法はありますか? または、.tmpl ファイル自体で連結を行うことになっていますか?

ここに私が参照として使用しているものがあります: jQote Reference

4

1 に答える 1

0

リシマハラジ、

jqoteappメソッドの 3 番目のパラメーターは、呼び出しごとにテンプレート タグ (既定) を変更するために使用され<% ... %>ます。テンプレートに追加のデータを渡す必要がある場合は、次の 2 つのオプションがあります。

  1. グローバルc変数を作成します(ただし、お勧めしません)
  2. cの値をパラメーターにコピーしdataます (推奨):

    コピーでは、テンプレート データのタイプを考慮する必要があることに注意してください。つまり、単一のオブジェクトは、オブジェクトの配列とは異なる方法で処理されます。

    $.get("emptyReq.tpl", function(tmpl,c) {
        var data;
    
        // 'result' seems to be a global var, thus making a copy is a good idea.
        // Copying needs to take into account the type of 'result'
    
        if ( Object.prototype.toString(result) === '[object Array]' ) {
            data = result.slice(0);
        } else {
            data = [$.extend({}, result)];
        }
    
        // Now it is safe to add 'c' to the wrapping array. This way
        // we won't override any homonymous property
        data.c = c;
    
        // Call the processing with our local copy
        $("#reqs").jqoteapp(tmpl, data);
    });
    

    これを変更するとc、テンプレート ラムダの固有プロパティを通じてアクセスできるようになりdataます。

    <tr id="row">
        ... <a href="<%= data.c %>"><%= this.FormattedID ...
    </tr>
    

よろしく、
aefxx

于 2011-11-24T09:26:18.457 に答える