Javascript 剑道:如何从单独的文件中呈现剑道视图或剑道布局?

Javascript 剑道:如何从单独的文件中呈现剑道视图或剑道布局?,javascript,kendo-ui,single-page-application,Javascript,Kendo Ui,Single Page Application,我想知道是否可以从单独的html文件加载kendo.View(…)或kendo.layout(…)的内容 这是剑道的例子: 你好 var index=new kendo.View( “index”,//包含视图标记的脚本元素的id {model:kendo.observable({foo:World!”} ); var router=新的kendo.router(); router.route(“/”,function(){ index.render(“#app”); }); $(函数(){

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

这是剑道的例子:


你好
var index=new kendo.View(
“index”,//包含视图标记的脚本元素的id
{model:kendo.observable({foo:World!”}
);
var router=新的kendo.router();
router.route(“/”,function(){
index.render(“#app”);
});
$(函数(){
router.start();
});
有没有可能这样想:

<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>

var index=new kendo.View(
“hello.html”,//包含视图标记的脚本元素的路径
{model:kendo.observable({foo:World!”}
);
var router=新的kendo.router();
router.route(“/”,function(){
index.render(“#app”);
});
$(函数(){
router.start();
});

这样做不行。我甚至不确定这是否可行

也许可以使用
$.get()
.load()
预先获取模板


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

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

其要点如下:

  • 您需要制作一个模板加载器,基本上可以从文件中读取html/字符串。剑道没有在盒子里提供一个,但这是他们在示例中使用的一个。()。将其包含在html页面中

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

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

    loadExtTemplate(“mytemplate.html”);


  • 视图构造函数也接受标记作为字符串(这更像是jQuery的副作用)。我不懂Javascript。我尝试了soltuions,但没有成功。也看到了
    <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>