Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8962269
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 15, 20262026-06-15T16:05:41+00:00 2026-06-15T16:05:41+00:00

I am new to knockout.js and am having a problem with binding within a

  • 0

I am new to knockout.js and am having a problem with binding within a foreach section. I am receiving the error:

Uncaught Error: Unable to parse bindings.
Message: ReferenceError: hideSearchElements is not defined;
Bindings value: click: hideSearchElements

Here is an exert of the html:

 <div id="searchResults" data-bind="visible: searchIsVisible">
  <label id = "lblSearchResults">select a template:</label>   
  <div data-bind="foreach: titles">
    <div data-bind="text: Title"></div>
    <div data-bind="click: hideSearchElements">hide</div>
 </div>   

And an exert from the viewModel:

var viewModel = function () {      
    this.searchIsVisible = ko.observable(true);               

    this.showSearchElements = function () {
       this.searchIsVisible(true);
    };

    this.hideSearchElements = function (
       this.searchIsVisible(false);                    }
    }

 return new viewModel();

I have both showSearchElements and hideSearchElements working fine outside of the foreach block but when inside it, I get the error.

If I add $parent.hideSearchElements I can bind but then get an error saying:

Uncaught TypeError: Object # has no method ‘searchIsVisible’
.

I have probably have two distinct issues but thought the detail may help 🙂

I’m keen to understand what’s going on here? Can anyone help please?

A link to the relevant page in the documentation would also be very helpful – I’m reading through that now.

Thanks

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-15T16:05:42+00:00Added an answer on June 15, 2026 at 4:05 pm

    You was right when use $parent.hideSearchElements because hideSearchElements function is in a parent context. You got exception because when knockout calls your function this has another context. You have to use closure to store this pointer. Update your view model as follow:

    var viewModel = function () {   
        var self = this;   
        self.searchIsVisible = ko.observable(true);               
    
        self.showSearchElements = function () {
           self.searchIsVisible(true);
        };
    
        self.hideSearchElements = function (
           self.searchIsVisible(false);                    }
        }
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I'm having a problem using knockout and a form and getting bindings to apply
It seems Knockout's convenient afterRender method on foreach bindings only fires when data is
I am new to Knockout.js, I have created an observable array and initialized with
I'm a new user to knockout.js and so far have been very impressed with
I'm fairly new to Knockout.js so I may simply be missing something. I'm trying
I'm a little bit new with knockout and I can't get the if data-bind
Trying to use the new cleaner event handling in Knockout 2 along with the
I am new to jQuery and I am using jQuery 1.7.1 to learn Knockout
I'm working with a new application at work that we're building out using Knockout.js
I am having difficulty resetting/refreshing/reloading an Isotope view based on a Knockout model. I

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.