使页面变量在格子模板中可用

Make page variable available in kendoui grid template

本文关键字:变量      更新时间:2023-09-26

我有一个简写模板定义如下:

<script id="detailsTemplate" type="text/x-kendo-template">
<tr class="row k-alt">
  <td>
        #(OwnerId == userInfo.UserId)? "Me" : OwnerName#
    </td>
</tr>    
</script>
在我的doc ready事件中,我定义了userInfo对象:
$(document).ready(function () {
     var userInfo = $.parseJSON($.cookie('visitorData'));   

当数据源读取返回数据时,我得到一个js错误,说userInfo.UserId未定义。是否有办法使我的userInfo对象在模板中可用?是否有其他方法可以做到这一点,而不必在返回数据的每个项中定义userInfo ?

模板中的变量(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>

上下文不一样。您定义变量的作用域与模板执行的作用域不同。

userInfo对象创建一个全局变量,在您共享的文档就绪处理程序之外声明它。

using inline template with kendo grid

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

自我的地方。