【问题标题】:Durandal navigation events accesible for viewmodels视图模型可访问的 Durandal 导航事件
【发布时间】:2013-09-28 10:39:04
【问题描述】:

我正在构建一个简单的 durandal 应用程序。我已经有一些从服务器加载数据的视图模型,它们有点相互依赖。为了使它们保持同步,我想在导航到时重新加载视图模型的数据。我想到的是尝试使用某种导航事件。最好的使用方法是什么?

假设我有这种带有视图和内容的视图模型。每次用户导航到页面时,如何让它加载其数据(即调用 loadData 函数)?

define(["knockout", "./repository"], function (ko, repository) {
    // Door viewmodel
    var list = ko.observableArray();

    function loadData() {
        // use repository to load the data
        // map the data to list array
    }

    return {
        list: list, 
        loadData: loadData
    }
});

我主要关注 Durandal 提供的示例应用程序,我的路由器配置基于示例使用的那个。

define(["knockout", "plugins/router"], function(ko, router) {

    var childRouter = router.createChildRouter()
        .makeRelative({
            moduleId: "vm/catalog",
            fromParent: true
        }).map([
            { route: ["", "door"], moduleId: "door/index", title: "Drzwi", nav: true },
            { route: "doorType", moduleId: "doorType/index", title: "Typy drzwi", nav: true },
            { route: "accessory", moduleId: "accessory/index", title: "Akcesoria", nav: true }
        ])
        .buildNavigationModel();

    return {
        router: childRouter
    }
});

有没有办法在路由器导航到页面时从路由器内部调用函数,或者以某种方式将对象传递给模块本身来管理事件?换句话说,Durandal 中实现导航路由器(生命周期)事件的方式是什么?

【问题讨论】:

    标签: javascript events navigation router durandal


    【解决方案1】:

    您需要通读文档,您正在寻找的所有答案都在那里。

    作曲生命周期 getView、激活、绑定、绑定完成、附加、组合完成、分离

    http://durandaljs.com/documentation/Using-Composition

    将您的数据调用放入您的激活方法中 -

    define(["knockout", "./repository"], function (ko, repository) {
        // Door viewmodel
        var list = ko.observableArray();
    
        function loadData() {
            // use repository to load the data
            // map the data to list array
        }
    
        function activate () {
            loadData();
        }
    
        return {
            list: list,
            activate: activate, 
            loadData: loadData
        }
    });
    

    【讨论】:

    猜你喜欢
    • 2014-08-15
    • 1970-01-01
    • 2013-05-19
    • 2013-09-11
    • 1970-01-01
    • 2013-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多