Refreshing $scope variables within a function

$scope.myVar = cheese;

function please(){
  $scope.myVar = "New Value";
}

google.maps.event.addListener(marker, 'click', please);

This scenario is perplexing to me. I have a variable called "cheese" in the HTML and I anticipated that clicking on a Google marker would update it to "New Value" similar to how ng-click works.

However, when I added an alert inside the function, it correctly displayed "New Value", but this value did not persist outside of the function.

I experimented with different approaches:

myVar = "New Value"

var myVar = "New Value"

I suspect the issue may stem from confusion between global and local variables. As someone new to Angular, I find this aspect particularly challenging to grasp.

Thank you for any help or clarification.

Answer №1

Using $apply is necessary in this case because the function is not being called from within angular.js itself.

function updateValue(){
  $scope.$apply(function() {
    $scope.myVar = "Updated Value";
  });
}

For more information, check out this resource.

Answer №2

Consider defining please() as a $scope method:

$scope.myVar = cheese;

$scope.please = function () {
  $scope.myVar = "Updated Value";
}

google.maps.event.addListener(marker, 'click', $scope.please());

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

Preserve the variable alterations for future promises

I have implemented promises in my database access using elasticsearchjs, which utilizes Bluebird. Each ID in the list triggers a new query, and I need to identify the failing query by its ID. const idList = ['id1', 'id2', 'id3&apo ...

Is it recommended to create model classes in React components?

Within the realms of React, the Flux architecture is utilized. According to https://reactjs.org/docs/thinking-in-react.html, React operates with two distinct models - namely, the state and props. There are recommendations provided for model management in ...

Using JavaScript and Regular Expressions for Performing Multiple Replacements

One issue that arises is that although the replacement functions as expected, all occurrences are replaced with the first find. (For example, see code below). The variable target represents the input field that contains the string to be highlighted, while ...

What is the ternary operation syntax for setting the img src attribute in Angular 8?

My data includes a property called "photo" which can either have a file name or be empty. For instance, it could be "steve.jpg" or just an empty string if Steve does not have a photo. In React JSX, I know how to use a ternary operator with the "photo" va ...

Ensure that the alert for an Ajax JSON record count remains active when the count is

Trying out Ajax JSON for the first time has been a bit tricky. Even though I hard coded "Record: 1" on the server side, it keeps alerting me with a total record of 0. I'm not sure where I went wrong. Could it be an issue with how I passed the array da ...

When enclosing my Javascript code in CDATA tags within my SVG files, it does not execute

Having an SVG file in this format: <svg id="test" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" viewBox="0 0 1435 1084"> &l ...

Automatically insert a comma for type=number in VueJS

Is there a method available to automatically insert commas into an input type="number" field in vue js? I need this functionality to trigger the IME options in Microsoft and prevent users from inputting Japanese characters. <ui-textbox label="initial" ...

Enhance JSON nesting with knockoutJS

I am currently working on updating a JSON object in memory using the knockout.js user interface. However, I have encountered an issue where changes made in the UI do not seem to reflect on the JSON data itself. To troubleshoot this problem, I have added bu ...

Leverage jsencrypt in Ionic 3

Struggling to hash passwords for login on my Ionic 3 app, I attempted using jsencrypt following a tutorial but encountered issues as I couldn't grasp how it works... Here's what I tried : npm install --save jsencrypt import { Component } from ...

Running a script through the terminal using an electron js application, but the process necessitates the installation of node js

I am currently working on a project that involves running a script through the system terminal using my Electron.js application. However, I am facing an issue with new users who may not be technically proficient and do not have Node.js installed on their s ...

Setting the state for an element in React after it has been mounted - a step-by-step guide

My React application features a user data form with a notification message that appears after submitting the form. The notification can be either a success or fail message, with the latter potentially containing multiple error types. I handle the error typ ...

Steps for displaying the contents of a file from Firebase storage on a React component

I uploaded a file to Firebase storage, and I want my app to be able to access and display the contents of that file within my class component div. Currently, when I try to access the file, it just opens in a new tab instead. class ScanResult extends Comp ...

The error message states: "An attempt was made to destructure a non-iterable object. In order for non-array objects to be iterable, they must have a [Symbol.iterator

I need to call a RTK query endpoint from a function const [getCityCode, { isLoading, error, data, isSuccess, isError }] = useLocationQuery(); const getLocationDetails = async () => { const queryItems = { latitude: lat, longitude: long }; await getC ...

Loading Textures in Three.js Using async / await is the Way to Go

Recently, I took a Drawing class and learned about creating objects: export class Drawing { constructor(texture) { const material = new MeshBasicMaterial({ color: 0xffffff, map: texture }); this.m ...

Tips on separating a function into two separate files in Node.js

Hey there! I am just starting to explore Node.js so bear with me if I make any mistakes. So, I have this file: exports.Client = function() { this.example = function(name, callback) { console.log(name); }; ...

Proper method for using helper service (ajax) in Angular js without relying on scope

I am currently working on an angular single page application that consists of several modules, services, factories, and controllers. To streamline my code, I created a helper service which is stored in a common folder as a minified JS file that all HTML pa ...

Efficient ways to retrieve row values and remove data using DataTables

I am facing an issue with my DataTable setup. I have a column dedicated to details with a delete button within an href tag. However, when I try to add a class name or id to it, I encounter an error. You can view the example here. My goal is to be able to ...

Creating a fade in or fade out effect in AJAX without using jQuery is a simple yet

Is there a simple way to achieve fade in or fade out effects in ajax without relying on jQuery? I'm looking for a solution that can add color or background color to make it visually appealing, especially for small web pages with poor internet connecti ...

Updating Icons on a Jquery Accordion

I need help modifying an icon to change when clicking on a specific section. Currently, I have the functionality set up to change all accordion icons when opening or closing. However, I am struggling to make it so that only the icon of the selected section ...

Using Reactjs to Send Emails

Trying to incorporate the SmptJs API for email sending using JavaScript has been quite successful in a simple HTML setup. However, I am facing challenges when attempting to integrate it into a ReactJs component! The API documentation and link can be found ...