Whisk Docs
Whisk HomeHelp CenterDeveloper Tools
v1.0.0
v1.0.0
  • Overview
  • Guides
    • Creating An Account
    • Getting Started
    • Whisk Sandbox
  • API
    • Authentication
      • Server Token
      • Client Token
      • User Access Token
      • Anonymous Access
    • Recipes
      • Get Recipe
      • Get Recipe Categories
      • Recipe Objects
    • Recipe Discovery
      • Recipe Feed
      • Recipe Search
      • Get Similar Recipes
    • Shopping Lists
      • Get Shopping Lists
      • Create A Shopping List
      • Add Items To A Shopping List
      • List Analysis
    • Meal Plans
      • Meal Plan Management
      • Delete Meals
      • Auto-Generator
      • Error Handling
    • Retailers
      • Get Available Stores
      • Retailers Checkout Flow
      • Retailer Aliases
      • OAuth Retailer Flow
      • Retailer User Info
      • Search Store Items
    • Carts
      • Create a Cart
      • Update Cart Item
      • Splitting Combined Items
      • Add Items To Cart
      • Add Recipes To Cart
      • Get Cart Item Options
      • Swap Cart Item Product
      • Delete A Cart Or A Cart Item
      • Checkout
    • Users
      • Get A User
      • Update A User
    • User Recipes & Collections
      • Add User Recipe
      • Create A Recipe
      • Update External Recipe
      • Get All User Recipes
      • Update User Recipe
      • Remove Recipe from Favorites
      • Create Collection
      • Get All User Collections
      • Get Collection
      • Get Recipes from a Collection
      • Remove Collection
    • Tools
      • Autocomplete
  • Shopping List SDK
    • Overview
    • Examples
      • Shoppable Recipes
      • Shoppable Products
      • Shoppable Media
    • Basic Setup
      • Basic Setup
      • Methods
      • Event Listeners
      • Widget
      • Subscriptions
      • Global Configuration
      • UTM Parameters
      • Using With SPA
  • Shopping List Mobile API
    • Overview
    • Examples
    • Reference
  • Tips and Tricks
    • Object IDs
    • URL Lookup
    • Searching
    • Multiple IDs request
  • Resources
    • Nutrients
    • Recipe Labels
    • Health Score, Glycemic Index, Glycemic Load
    • Whisk User Data
    • Supported Retailers
    • Optimizing Image Load
Powered by GitBook
On this page
  • Updating Widget
  • Updating Event Listeners
  • Subscriptions

Was this helpful?

  1. Shopping List SDK
  2. Basic Setup

Using With SPA

Many sites update content dynamically, and it’s possible to do this with Whisk SDK.

Updating Widget

For example, your user switches from one recipe page to another and you want to update the recipe URL for the widget. For that, you need to remove the old widget definition and create a new one.

whisk.queue.push(function () {
  // Creating widget
  whisk.shoppingList.defineWidget('myWidget', {
    recipeUrl: 'https://first-recipe-url',
  });
  // Removing widget
  whisk.remove('myWidget');
  // Creating new widget
  whisk.shoppingList.defineWidget('myWidget', {
    recipeUrl: 'https://second-recipe-url',
  });
});

Make sure you call display with updated widget id:

whisk.queue.push(function() {
    whisk.display('myWidget');
});    

Updating Event Listeners

Same logic applies for event listeners. Whenever you want to update listener just remove it and create a new one.

whisk.queue.push(function () {
  // Creating listener
  whisk.listeners.addClickListener('myButton', 'shoppingList.addRecipeToList', {
    recipeUrl: 'https://first-recipe-url',
  });
  // Removing listener
  whisk.listeners.removeClickListener('myButton');
  // Creating new listener
  whisk.listeners.addClickListener('myButton', 'shoppingList.addRecipeToList', {
    recipeUrl: 'https://second-recipe-url',
  });
});

Subscriptions

Whenever you remove widget or event listeners, all subscriptions will be removed as well. So whenever you update your widget or event listener don't forget to subscribe to desired events again.

PreviousUTM ParametersNextOverview

Last updated 5 years ago

Was this helpful?