3

我想知道是否可以从单独的html文件中加载kendo.View(...)kendo.layout(...)的内容?

这是来自 Kendo Hello World Single Page Application的示例:

<div id="app"></div>

<script id="index" type="text/x-kendo-template">
    Hello <span data-bind="text: foo"></span>
</script>

<script>
    var index = new kendo.View(
        "index", // the id of the script element that contains the view markup
        { model: kendo.observable({ foo: "World!" }) }
    );

    var router = new kendo.Router();

    router.route("/", function() {
        index.render("#app");
    });

    $(function() {
        router.start();
    });
</script>

是否可以这样做:

<div id="app"></div>

<script>
    var index = new kendo.View(
        "hello.html", // the path of the script element that contains the view markup
        { model: kendo.observable({ foo: "World!" }) }
    );

    var router = new kendo.Router();

    router.route("/", function() {
        index.render("#app");
    });

    $(function() {
        router.start();
    });
</script>
4

2 回答 2

2

现在有一种方法可以做到这一点。这是有关如何执行此操作的文档:Kendo Remote Templates

这是它的要点:

  1. 您需要制作一个基本上从文件中读取 html/string 的模板加载器。Kendo 没有在框中提供一个,但这是他们在示例中使用的一个。(templateLoader.js)。将其包含在您的 html 页面中。

  2. 在单独的 html 文件中添加模板。您可以将多个模板存储在同一个文件中。但是,理想情况下,您应该只将模板放在那里。假设这是在文件中mytemplate.html

    <script id="index" type="text/x-kendo-template">
        Hello <span data-bind="text: foo"></span>
    </script>
    

  3. 在您的主 html 页面上,添加一个<script>使用该模板文件调用模板加载器的块。这将/应该将模板注入您的主页,然后您应该能够像使用本地模板一样使用它。

    <script>
        templateLoader.loadExtTemplate("mytemplate.html");
    </script>
    

于 2014-03-28T14:19:47.590 回答
0

这种方式atm是做不到的。我什至不确定它是否应该可行。

$.get()也许事先使用or获取模板.load()

编辑:使用.load()您必须动态创建脚本模板并使用$.get()将脚本模板附加到文档中的某处。

于 2013-05-03T15:27:27.377 回答