Загрузка плагина «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
Ваша помощь, предложения очень ценятся. Спасибо!