(новичок в отдельных приложениях страниц и нокаута, но я знаком с концепцией MVVM в WPF/Silverlight.)Как получить ссылку на ViewModel
У меня есть простой ViewModel со свойством называется selectedPayPeriodId который связан с выпадающий список с помощью нокаута. Это работает.
<select data-bind="options: SelectList, optionsCaption: 'Choose...', optionsText: 'Text', optionsValue: 'Value', value: selectedPayPeriodId"></select>
<input id="btnRunReport" type="button" class="btn btn-default" value="Run Report" onclick="doTest()" />
<p>Selected Pay Period Id:<span data-bind="text: selectedPayPeriodId"></span></p>
Теперь мне нужно получить значение viewModel.selectedPayPeiriodId из яваскрипта функции, так что я могу использовать его в вызов Ajax получить JSON от сервера.
Это то, что я пытаюсь сделать:
var doTest = function() {
//How to get reference to viewModel?
alert(viewModel.selectedPayPeriodId); //Error: viewModel is undefined.
}
Это работает. Тем не менее, я запускаю doTest(), когда первая страница загружается. Если я затем нажму кнопку, событие просто прекратится. Любая идея, почему он может выстрелить рано? –
Попробуйте следующее: click: function (data, event) {$ root.doTest(); } –
И попробуйте эту ссылку: http://stackoverflow.com/questions/9891282/knockoutjs-bindings-with-parameters-triggered-on-load –