2013-08-24 2 views
1

Я пытаюсь понять, как управлять областью в моем Javascript-коде. Как только я создаю viewmodel, как мне получить доступ к нему из остальной части моего javascript? (последняя строка в этом коде генерирует ошибку «не определена»Как получить доступ к нокауту viewmodel из javascript

ПРИМЕЧАНИЕ. Я нашел несколько сообщений о различиях между функциями/var для ko, но никто не сказал, что есть преимущество в облаке с использованием var ... поэтому я попробовал оба метода.

//function AppViewModel() { 
// this.gridSize = ko.observable("30"); 
// this.canvasWidth = ko.observable("600"); 
// this.canvasHeight = ko.observable("600"); 
// this.displayCoords = "Axial"; 
// this.pixel="0"; 
// this.hex="0"; 
//} 
//ko.applyBindings(new AppViewModel()); 

var AppViewModel = { 
    gridSize: ko.observable("30"), 
    canvasWidth: ko.observable("600"), 
    canvasHeight: ko.observable("600"), 
    displayCoords: "Axial", 
    pixel:"0", 
    hex:"0" 
}; 
ko.applyBindings(AppViewModel); 

var test = AppViewModel.gridSize; 
+0

Что вы хотите сказать? – bennofs

+0

строка «var test = AppViewModel.gridSize» не работает, когда пошаговые инструкции не определены. –

+0

Это [отлично работает] (http://jsfiddle.net/G2HCq/). Нам понадобится дополнительная информация, если все еще есть проблема. – FakeRainBrigand

ответ

1

ko.observable является функцией и, таким образом, чтобы ссылаться на наблюдаемую величину вы должны иметь brakets

например, из примера выше

var test = AppViewModel.gridSize(); 

нашел это хорошее объяснение http://knockoutjs.com/documentation/observables.html

Смежные вопросы