I am trying to incorporate Knockout.js into a WebApplication.
The tutorial I am basing much of my code on is here.
Basically - I have a list of items - I want to be able to click an item and have the corresponding data appear in a div at the bottom of the page. Eventually I'll use jquery.UI Dialog plugin to turn this div into a popup, but for now, I'm just trying to get the selectedItem to work.
My (simplified) code is here: http://jsfiddle.net/fZXAX/1/
I just get the error: actionListViewModel.selectedActionId is not a function.
I don't see the difference between this and the tutorial which uses selectedMailId in an identical way. The only difference between my code and the example is that I am not using literal notation.
Can anyone see where I am going wrong? Thanks in advance.
Your error is here:
click: function() {actionListViewModel.selectedActionId(id)}
actionListViewModel
is a constructor function, but you're acting as if it's an object.
See this forked jsFiddle. This line, which defines a constructor function
function actionListViewModel () {
was changed to be an instance of a new object, created by calling an anonymous constructor function.
var actionListViewModel = new function () {
and this line, where you were creating an instance of your previously defined function
ko.applyBindings(new actionListViewModel());
was changed to just pass in the instance that we setup earlier
ko.applyBindings(actionListViewModel);
Alternatively you could simply define a variable viewModel
and set it = new actionListViewModel();
and then update your click literal to point to viewModel
instead of actionListViewModel
. You can see that approach here
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With