如何在Durandal中使用淘汰映射插件?

时间:2013-08-28 09:51:58

标签: knockout.js knockout-mapping-plugin durandal

我是Durandal的新手,想要使用这个框架重写我现有的淘汰赛项目。在我的旧项目中,我使用的是淘汰映射插件,现在我遇到了问题。我以Durandal示例项目为基础。这是我的代码:

define(['durandal/app', 'durandal/system', 'knockout'], function (app, system, ko) {

    var clients = ko.observableArray([]);

    return {    
        clients: clients,

        activate: function(data) {
            var self = this;
            ko.mapping.fromJS(getData(), {}, self.clients);
        }
    };
};

错误是:

  

未捕获的TypeError:无法调用未定义的方法'fromJS'

确实,它是未定义的,但我应该在哪里添加它并使其正常工作?

感谢。

1 个答案:

答案 0 :(得分:0)

您应该在define中添加映射插件,否则不会加载它。

define(['durandal/app', 'durandal/system', 'knockout', 'knockout-mapping'], function (app, system, ko) {

确保您能够在requirejs配置中加载此脚本。

我建议您在main.js中加载Knockout和映射插件,这样您就不需要在所有视图模型中保持“要求”它们。您也可以单独捆绑它们,而不是加载器的一部分。