javascript - 剑道网格 : Display collapsible data inside Grid cells

标签 javascript angularjs twitter-bootstrap kendo-grid

我正在尝试在 Kendo UI 网格的单元格内显示可折叠数据。在我的 Kendo 网格中,有一列价格,每行,该价格列可能有多个值。为了显示特定单元格内的所有价格,我尝试了下面的模板。

 template : "<button type='button' class='btn btn-info' data-toggle='collapse' data-target='#demo'>Price</button>"
            + "<div id='demo' class='collapse'>"
            + "<ul>"
            + "#if (competitorPrice!=null){#"
            + " #for (var i=0,len=competitorPrice.length; i<len; i++){#"
            + " <li><b>#:competitorPrice[i].competitorName #:</b> #: kendo.toString(competitorPrice[i].price, 'n2')  #</li>"
            + "# } #"
            + "#}#"
            + "</ul>"
            + "</div>"

我只想折叠网格单元内的数据。我正在使用 bootstrap3 和 angularjs。

上面的代码在控制台中给出了以下错误消息。

angular.js:9778 Error: Invalid template:'<tr data-uid="#=data.uid#" role='row'><td  role='gridcell'>#= kendo.toString(kendo.parseDate(date, 'yyyy-MM-dd'), 'dd-MM-yyyy') #</td><td  role='gridcell'>#:data.salesCount==null?'':data.salesCount#</td><td  role='gridcell'><button type='button' class='btn btn-info' data-toggle='collapse' data-target='#demo'></button><div id='demo' class='collapse'><ul>#if (competitorPrice!=null){# #for (var i=0,len=competitorPrice.length; i<len; i++){# <li><b>#:competitorPrice[i].competitorName #:</b> #: kendo.toString(competitorPrice[i].price, 'n2')  #</li># } ##}#</ul></div></td><td  role='gridcell'>#:data.availability==null?'':data.availability#</td><td  role='gridcell'>#:data.searchCount==null?'':data.searchCount#</td></tr>' Generated code:'var $kendoOutput, $kendoHtmlEncode = kendo.htmlEncode;with(data){$kendoOutput='<tr data-uid="'+(data.uid)+'" role=\'row\'><td  role=\'gridcell\'>'+( kendo.toString(kendo.parseDate(date, 'yyyy-MM-dd'), 'dd-MM-yyyy') )+'</td><td  role=\'gridcell\'>'+$kendoHtmlEncode(data.salesCount==null?'':data.salesCount)+'</td><td  role=\'gridcell\'><button type=\'button\' class=\'btn btn-info\' data-toggle=\'collapse\' data-target=\'';demo'></button><div id='demo' class='collapse'><ul>;$kendoOutput+='if (competitorPrice!=null){'; ;$kendoOutput+='for (var i=0,len=competitorPrice.length; i<len; i++){'; <li><b>;$kendoOutput+=':competitorPrice[i].competitorName '+$kendoHtmlEncode(</b> )+': kendo.toString(competitorPrice[i].price, \'n2\')  ';</li>;$kendoOutput+=' } ';;$kendoOutput+='}';</ul></div></td><td  role='gridcell'>;$kendoOutput+=':data.availability==null?\'\':data.availability';</td><td  role='gridcell'>;$kendoOutput+=':data.searchCount==null?\'\':data.searchCount';</td></tr>;$kendoOutput+=;}return $kendoOutput;'
at Error (native)
at Object.compile (http://kendo.cdn.telerik.com/2016.2.607/js/kendo.all.min.js:25:7802)
at Object.d [as template] (http://kendo.cdn.telerik.com/2016.2.607/js/jquery.min.js:2:3856)
at init._tmpl (http://kendo.cdn.telerik.com/2016.2.607/js/kendo.all.min.js:50:16130)
at init._templates (http://kendo.cdn.telerik.com/2016.2.607/js/kendo.all.min.js:50:17717)
at new init (http://kendo.cdn.telerik.com/2016.2.607/js/kendo.all.min.js:48:16763)
at HTMLDivElement.<anonymous> (http://kendo.cdn.telerik.com/2016.2.607/js/kendo.all.min.js:26:4091)
at Function.each (http://kendo.cdn.telerik.com/2016.2.607/js/jquery.min.js:2:2881)
at n.each (http://kendo.cdn.telerik.com/2016.2.607/js/jquery.min.js:2:846)
at n.e.fn.(anonymous function) [as kendoGrid] (http://kendo.cdn.telerik.com/2016.2.607/js/kendo.all.min.js:26:4068)

如有任何建议,我们将不胜感激。

谢谢

最佳答案

您忘记在 data-target='#demo' 中转义特殊字符 # 只需在 # 个字符前面添加\反斜杠即可。

关于javascript - 剑道网格 : Display collapsible data inside Grid cells,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38183444/

相关文章:

javascript - JsPlumb - 将自己的选择器功能添加到动态 anchor

javascript - _(variable_name) 在 JavaScript 中意味着什么?

angularjs - 获取指令中 ngModel 的初始值

css - 垂直菜单 Bootstrap 中的自动更改位置子菜单

jquery - 无法让 Bootstrap 菜单出现在选项卡内滑出 div

javascript - 如何在页面上提交新元素? (jQuery)

javascript - javascript点击事件的问题

android - 如何在 ionic 中关闭应用程序时使设备 token 不注销

javascript - 如何在不同位置组织 angularjs 工厂/服务/配置/ Controller 文件?

android - Cordova Android 相机插件在捕获后不显示图像