Mój model widoku zaczął być bardzo duży, więc postanowiłem podzielić go na wiele plików. Próbowałem już wielu różnych podejść, ale nic nie działało.Podział modelu widoku z nokautu na wiele plików
Moim zdaniem modelka wygląda następująco:
namespace.model = function(constructorParam) {
var self = this;
self.param1 = ko.observable(constructorParam.param1);
self.param2 = ko.observable(privateFunction(constructorParam));
self.clickEvent = function() {
// do something with params
// call some private funcitons
privateFunction2(self.param2);
};
function privateFunction(param) {
// do some stuff
}
function privateFunction2(param) {
// do some stuff
}
};
muszę dostęp do prywatnych funkcji i parametrów do zaobserwowania na wielu plikach. Mój ostateczny model powinien wyglądać tak:
// file 1
// contains constructor and param initialization + many common private helper funcitons
namespace.model = function(constructorParam) {
var self = this;
self.param1 = ko.observable(constructorParam.param1);
self.param2 = ko.observable(privateFunction(constructorParam));
function privateFunction(param) {
// do some stuff
}
function privateFunction2(param) {
// do some stuff
}
};
// file 2
// contains event hendlers
self.clickEvent = function() {
// i need to acces properties from namespace.model
self.param1
// call some private funcitons
privateFunction2(self.param2);
};
// view model initialization
ko.applyBindings(new namespace.model(initValues));
Czy można osiągnąć coś takiego z nokautem? Dzięki
Czy można to zrobić bez RequireJS? –
@MajoB, tak, można to zrobić bez RequireJS. Jedną z korzyści wynikających z używania biblioteki takiej jak RequireJS jest to, że powoduje ona wyraźne zależności, co może być bardzo przydatne, jeśli komponujesz model z części opisanych tutaj. – kiprainey