Загрузка плагина «knockout.mapping» с использованием require.js

Я создаю приложение MVC3, с requireJS. В моих представлениях мне нужно преобразовать объект Model в нокаутный объект viewmodel. Поэтому мне нужно использовать библиотеки knockout и knockout.mapping.

Мое приложение разработано следующим образом,

1). Все файлы сценариев разбиты на папки

Scripts / app / home / - содержит сценарии для представлений в контроллере Home.Scripts / lib / - содержит такие скрипты, как jQuery, knockout, knockout.mapping, requirejs и т. Д.

2). В "_Layout.cshtml» Я ссылаюсьrequire.js» как это.


3). Для настройки параметров require.js я использую другой файл скрипта под названием "common.js» (Сценарии / Библиотека / common.js)

require.config(
{
    baseUrl: "/Scripts/",
    paths:{
            jquery: "lib/jquery-2.0.3",
            ko: "lib/knockout-2.3.0",
            komapping: "lib/knockout.mapping"
        }
});

4). Это мой файл index.js, который находится вСценарии / приложение / дома /»

define(['ko', 'komapping'], function (ko, komapping) {

var person = function () {
    var self = this;
    self.getPersonViewModel = function (data) {
        return ko.mapping.fromJS(data); ;
    };

};
return { Person: person };

});

5). Это мое "Индекс" Метод действия в "Главная" контроллер

public ActionResult Index()
    {
        var person = new Person
        {
            Id = 1,
            Name = "John",
            Addresses = new List(new[]{new Address{Country = "Country 1", City = "City 1"}})
        };

        return View(person);
    }

6). Наконец то это моеИндекс" Посмотреть

@model MMS.Web.Models.Person



require(["/Scripts/common/common.js"], function () {

            require(["app/home/index"], function (indexJS) {
                var person = new indexJS.Person();
                var vm = person.getPersonViewModel(@Html.Raw(Json.Encode(Model)));
            });
});

Проблема, с которой я сталкиваюсь, заключается в том, что при загрузке файла index.js я получаю сообщение об ошибке сценария, что файл knockout.js не может быть загружен.

Не удалось загрузить ресурс: сервер ответил с состоянием 404 (не найдено) - http: ///Scripts/knockout.js

Но если я уберу зависимость "komapping» внутри "index.js» файл загружается правильно, но тогда я не могу использовать функциональность сопоставления.

Я заглянул внутрь этих ссылок, но не смогне могу найти решение,Плагин для отображения Knockout.js с require.js а такжеhttps://github.com/SteveSanderson/knockout.mapping/issues/57

Ваша помощь, предложения очень ценятся. Спасибо!

Ответы на вопрос(1)

Ваш ответ на вопрос