Reputation: 2659
I am using knockout.js
library. I have a Boolean value and I am saving it as Observable. But when I try to get the value in a drop down selected index change event. It gives me this error :
Object function viewModel(model) {
this.stocks = ko.observableArray(model.stocks);
this.isGeneral = ko.observable(model.generalStockEnabled);
} has no method 'isGeneral'
Here is my code for registering my model :
function viewModel(model) {
this.stocks = ko.observableArray(model.stocks);
this.isGeneral = ko.observable(model.generalStockEnabled);
}
here is my drop down list event :
$('#enableGeneratInventorydl').change(function () {
if ($('#enableGeneratInventorydl :selected').val() === "True")
{
alert(viewModel.isGeneral())
}
else
{
}
});
I am calling this at page initialize
ko.applyBindings(new viewModel(data));
the data object has a boolean value generalStockEnabled.
Any Idea ?
Upvotes: 2
Views: 107
Reputation: 29703
You can create global variable viewModel
and this will works well:
function viewModel(model)
{
this.stocks = ko.observableArray(model.stocks);
this.isGeneral = ko.observable(model.generalStockEnabled);
}
window.myViewModel = new viewModel(data);
//...
ko.applyBindings(window.myViewModel);
Now you can call myViewModel.isGeneral()
anywhere
$('#enableGeneratInventorydl').change(function ()
{
if ($('#enableGeneratInventorydl :selected').val() === "True")
{
alert(myViewModel.isGeneral())
// ...
Upvotes: 1