我想知道在导航到包含一个脚本的脚本后,是否有一种方法可以在使用MVVM时重新加载KendoUI小部件。例如,假设我们有:

<div id="view_content"></div>

<script id="index" type="text/x-kendo-template">
  <span id="info-notification"
        data-role="notification">
  </span>
</script>

我们已经设置了一个KendoUI路由器来访问“/index”。
var router = new kendo.Router();

router.route("/index", function() {
    var index = new kendo.View('index');

    index.render("#view_content");
});

router.start();
router.navigate("/index");

这会将脚本以id =“view_content”加载到div中。问题是,每次访问“/index”时,窗口小部件都不会重新加载。该窗口小部件首先加载在document.ready上,但是在再次调用后不会重新加载。有什么办法可以做到这一点?

最佳答案

您可以使用Kendo UI View show()事件来重新加载小部件。

<body>
    <div id="application"></div>

    <script id="main" type="text/x-kendo-template">
        <div id="content"></div>
    </script>

    <script id="index" type="text/x-kendo-template">
        <!-- Widgets here -->
    </script>

</body>


var layoutModel = kendo.observable({

});

var indexModel = kendo.observable({

});

var main = new kendo.Layout('main', {
    model: layoutModel
});

var indexView = new kendo.View('index', {
    model: indexModel,
    show: function () {
        // update widget here
    }
});

var router = new kendo.Router({
    init: function () {
        main.render('#application');
    }
});

var router = new kendo.Router();

router.route("/index", function() {
    main.showIn('#content', indexView);
});

$(function () {
    router.start();
});

关于javascript - KendoUI MVVM : Reload widgets after router.导航,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35218505/

10-09 22:17