(对于单页应用程序和淘汰赛来说是新手,但我熟悉WPF / Silverlight中的MVVM概念。)
我有一个名为selectedPayPeriodId的简单viewModel,它使用Knockout绑定到下拉列表。这很有效。
<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>
现在我需要从javascript函数中获取viewModel.selectedPayPeiriodId的值,以便我可以在ajax调用中使用它来从服务器获取json。
这就是我想要做的事情:
var doTest = function() {
//How to get reference to viewModel?
alert(viewModel.selectedPayPeriodId); //Error: viewModel is undefined.
}
答案 0 :(得分:2)
将doTest放入视图模型中,然后使用data-bind: "click: doTest"
绑定到它。 http://knockoutjs.com/documentation/click-binding.html
function myViewModel() {
var self = this;
this.selectedPayPeriodId = ko.observable();
this.doTest = function() {
alert(self.selectedPayPeriodId());
};
}
并在HTML中:
<input type="button" data-bind="click: doTest"/>