1

次のように定義された kendoui テンプレートがあります (簡略化)。

<script id="detailsTemplate" type="text/x-kendo-template">

<tr class="row k-alt">
  <td>
        #(OwnerId == userInfo.UserId)? "Me" : OwnerName#
    </td>
</tr>    
</script>

私のドキュメント準備イベントでは、userInfoオブジェクトを定義します:

$(document).ready(function () {
     var userInfo = $.parseJSON($.cookie('visitorData'));   

データソースの読み取りがデータを返すと、userInfo.UserId未定義であるというjsエラーが発生します。userInfoオブジェクトをテンプレートで使用できるようにする方法はありますか? 返されたデータのすべての項目で userInfo を定義することなく、これを行う他の方法はありますか?

4

3 に答える 3

3

テンプレート内の変数 (afaik) は、バインドされたデータまたはグローバル変数の一部である必要があります。

定義してみてください:

userInfo = $.parseJSON($.cookie('visitorData'));
$(document).ready(function () {

    ....
}

テンプレートは次のとおりです。

<script id="detailsTemplate" type="text/x-kendo-template">
    <tr class="row k-alt">
        <td>
            #= (OwnerId == userInfo.UserId)? "Me" : OwnerName #
        </td>
    </tr>    
</script>
于 2013-03-04T18:45:54.713 に答える
2

文脈は同じではありません。変数を定義したスコープは、テンプレートが実行されるスコープと同じではありません。

オブジェクトのグローバル変数を作成し、userInfo共有したドキュメント準備ハンドラーの外で宣言します。

于 2013-03-04T18:47:51.257 に答える
0

剣道グリッドでインライン テンプレートを使用する

template: "<input type='checkbox' class='checkbox' #: defaultCost > "+self.range +"? 'disabled':'' #/>"

where self.range my page level vable

于 2016-03-29T10:17:41.970 に答える