Knockout.js Durandal中的敲除映射插件未定义

Knockout.js Durandal中的敲除映射插件未定义,knockout.js,requirejs,durandal,Knockout.js,Requirejs,Durandal,我有一个问题我已经尝试解决了2天,现在我放弃了,这是我的最后一个资源,我正在尝试将JSON响应加载到Durandal中的ObservalArray(KO)中,但每次调用函数KO.mapping.fromJSON时都会出现以下错误: Uncaught TypeError: Cannot call method 'fromJSON' of undefined 我知道我需要下载插件并将其加载到main.js上 requirejs.config({ paths: { 'text': '../

我有一个问题我已经尝试解决了2天,现在我放弃了,这是我的最后一个资源,我正在尝试将JSON响应加载到Durandal中的ObservalArray(KO)中,但每次调用函数KO.mapping.fromJSON时都会出现以下错误:

Uncaught TypeError: Cannot call method 'fromJSON' of undefined 
我知道我需要下载插件并将其加载到main.js上

requirejs.config({
paths: {
    'text': '../lib/require/text',
    'durandal':'../lib/durandal/js',
    'plugins' : '../lib/durandal/js/plugins',
    'transitions' : '../lib/durandal/js/transitions',
    'knockout': '../lib/knockout/knockout',
    'mapping': '../lib/knockout/knockout.mapping',
    'bootstrap': '../lib/bootstrap/js/bootstrap',
    'jquery': '../lib/jquery/jquery-1.9.1'
},
urlArgs: 'v=1.0.0.1',
shim: {
    'bootstrap': {
        deps: ['jquery'],
        exports: 'jQuery'
   }
}
});
Knockout工作正常,我能够更新字段和所有内容,但当我尝试使用ko.mapping时,我遇到了问题:

define(['durandal/app', 'plugins/router', 'knockout', 'mapping'], function (app, router, ko) {

var clients = ko.observableArray([]);

return {
    displayName: 'My Page',
    clients: clients,
    activate: function () {

        return $.ajax({
            type: "POST",
            url: "backend/ServerServices.php",
            data: {
                s: 'listadodeclientes'
            }
        }).then(function( msg ) {
            ko.mapping.fromJSON(msg, clients);

        });

    },
    showMessage: function () {
        router.navigate('crearcliente');
    }
};
});

为了在require.js中使用ko.mapping插件,您必须手动将ko.mapping变量设置为ko.mapping库或使用注入变量

样本:

define(['durandal/app', 'plugins/router', 'knockout', 'mapping'], function (app, router, ko, mapping) {
   ko.mapping = mapping;
   ko.mapping.fromJSON(...

   //or use injected mapping parameter
   mapping.fromJson(...


}

查看问题的答案。

您使用的是哪个版本的Durandal?