视图模型变得相当大,我想将它分成不同的文件。这是我要使用的结构:
|- knockout-2.2.0.debug.js
|- require.js
|- /App
|- Property.js
|- /Property
|- Fields.js
|- Model.js
|- ViewModel.js
现在在我的 Property.js 文件中,我有:
require.config({
paths: {
ko: "../knockout-2.2.0.debug"
},
baseUrl: "/Scripts/App"
})
require(['ko', 'Property/ViewModel'], function (ko, viewModel) {
var view = new viewModel.PropertyViewModel();
console.log(view);
ko.applyBindings(view);
})
模型.js
define(['ko'], function(ko) {
return {
PropertyModel: function(id, name, note) {
var s = this;
s.Id = ko.observable(id);
s.Name = ko.observable(name);
s.Note = ko.observable(note);
}
};
});
现在这就是我卡住的地方,如果我在我的 ViewModel 中有这个:
define(['ko', 'Property/Model', 'Property/Field'], function(ko, model, field) {
return {
PropertyViewModel: function () {
var self = this;
self.Property = ko.observable(new model.PropertyModel("123", "Test", "note"));
}
};
});
它工作得很好,但我真的想将我使用的字段(self.Property
等)移动到一个单独的文件中,所以在我的 Field.Js 文件中我有以下内容:
define(['ko'], function(ko) {
return {
Property: ko.observable()
};
});
并更新以下行:
self.Property = ko.observable(new model.PropertyModel("123", "Test", "note"));
至
field.Property(new model.PropertyModel("123", "Test", "Note"))
但是当我尝试 console.log 视图模型时,它只是空的。这是您不能移出并注入 ViewModel 的东西吗?如果不是,为什么?