我在我的mvc应用程序中使用knockout和requirejs。在淘汰赛中我实际上并没有创建任何视图模型,而是我从服务器端获取视图模型作为json对象并使用ko.mapping插件我在javascript中创建ko模型。
考虑我有 StudentModel 的情况,其中还有2个嵌套模型,例如学术和地址。
现在凭借我对AMD和requirejs的有限知识,我决定创建3个模块学生,学术和地址模块,我已定义它在3个独立的js文件中使用requirejs define 函数,类似于
Academic.js moduels
define(['knockout', 'dataservice'], function (ko, dataService) {
return function (data) {
var self = this;
ko.mapping.fromJS(data, {}, self);
... //some extensions to model
self.save = function (self) {
var academic = ko.mapping.toJSON(self);
dataService.saveData(url, academic, function (response) {
alert('saved');
});
};
return self;
};
});
Address.js moduels
define(['knockout', 'dataservice'], function (ko, dataService) {
return function (data) {
var self = this;
ko.mapping.fromJS(data, {}, self);
... //some extensions to model
self.save = function (self) {
var address = ko.mapping.toJSON(self);
dataService.saveData(url, address, function (response) {
alert('saved');
});
};
return self;
};
});
Student.js moduels
define(['knockout', 'dataservice', 'academic', 'address'], function (ko, dataService) {
});
这是我到目前为止所做的,但我不相信这是否是使用requirejs anf knockout的正确方法。如果它不是正确的方式(我感觉不是),那么请任何人解释我在上述例子的帮助下使用requirejs使用knockout的写方法?