如何获取对视图模型的引用
How to get reference to viewmodel
(我是单页应用和淘汰赛的新手,但熟悉 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.
}
将 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"/>
(我是单页应用和淘汰赛的新手,但熟悉 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.
}
将 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"/>