In this plunk你可以看到三个kendo窗口,前两个用AngularJS指令声明,第三个用jQuery声明。内容在三个窗口中设置,但它只显示在jQuery窗口中。我究竟做错了什么?为什么前两个窗口是空白的?
这是HTML:
<div kendo-window="win1" k-title="'Win 1'"
k-width="300" k-height="200"
k-content="'<h1>Some Text 1111</h1>'"></div>
<div kendo-window="win2" k-title="'Win 2'"
k-width="200" k-height="200"
k-content="htmlContent"></div>
<div id="win3"></div>
和javascript:
angular.module("KendoDemos", [ "kendo.directives" ]);
function MyCtrl($scope) {
$scope.htmlContent = '<h1>Some Text 2222</h1>';
}
$(document).ready(function () {
$("#win3").kendoWindow({
visible: true,
width: "400px",
height: "200px",
title: "Win 3"
});
var kendoWindow = $("#win3").data("kendoWindow");
kendoWindow.content("<H1>Some text 3333</H1>");
kendoWindow.center().open();
});
更新
我在控制台中看到kendo尝试加载k-content中的文件而不是文本:
无法加载资源:服务器响应状态为404(未找到)http://run.plnkr.co/0dvkHRto0wShGuIS/%3Ch1%3E 某些%20Text%201111 %3C / h1%3E?_ = 1415936598247
无法加载资源:服务器响应状态为404(未找到)http://run.plnkr.co/0dvkHRto0wShGuIS/%3Ch1%3E 某些%20Text%202222 %3C / h1%3E?_ = 1415936598248
所以问题是如何让KendoUI直接显示html文本而不是认为k-content指向文件。
答案 0 :(得分:0)
在加载控制器时,不会创建窗口。因此,而不是
$scope.htmlContent = '<h1>Some Text 2222</h1>';
使用此
$scope.$on("kendoWidgetCreated", function(ev, widget){
if (widget === $scope.win2) {
$scope.win2.content("<h1>Some Text 2222</h1>");
}
});