Tips for achieving comma-separated user input via ngModel and appending it to an array

I am working on an email template that includes a cc option. I want users to be able to add email addresses with commas separating them and then push them to an array called $scope.notifyCtrl.cc. How can I accomplish this using AngularJS 1.5 and above? main.html

<div layout="row">
    <md-input-container flex="100">
        <label>Cc</label>
        <input ng-model="notifyCtrl.cc">
    </md-input-container>
</div>

ctrl.js

$scope.notifyCtrl = {};
$scope.notifyCtrl.cc = [];

Answer №1

If you're looking to easily convert a delimited string into an array of strings, ngList is the perfect solution.

This tool allows for seamless conversion between a string with specified delimiters and an array of individual strings. By default, the delimiter is set as a comma followed by a space (ng-list=", "), but you can customize it to fit your needs by setting a different value in the ngList attribute - such as ng-list=" | ".

Answer №2

One possible solution could involve utilizing the ng-change directive:

//controller.js
$scope.userInput = "";
$scope.updateData = () => {
    let dataArray = $scope.userInput.split(',');
    ...
};

//index.html
<div layout="row">
    <md-input-container flex="100">
        <label>Enter Data</label>
        <input ng-model="mainCtrl.data" ng-change="updateData()">
    </md-input-container>
</div>

Answer №3

If you need to input multiple strings in a convenient way, check out ngTagsInput. This tool allows you to enter several strings separated by commas and then automatically adds them to an array.

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

Create a basic chart using JavaScript

I am looking to replicate a specific chart using JavaScript. The red point in the chart is variable. So far, I have attempted to create it using the flot library: var d3 = [[7,7]]; $.plot("#placeholder", [{ data: d3, points: { show: true } }], { ...

conceal the .card-body element if the children have the CSS property "display:none"

My challenge involves managing two collapsible cards on a webpage. I am looking for a solution where the .card-body will have its display set to none when there are no inner divs to show in the card upon clicking a letter in the pagination. Otherwise, the ...

What is the best way to simulate a library in jest?

Currently, I am attempting to simulate the file-type library within a jest test scenario. Within my javascript document, this particular library is utilized in the subsequent manner: import * as fileType from 'file-type'; .... const uploadedFil ...

What is the npm command in React to generate a new component?

As a newcomer to React, I am eager to learn how to generate a new component using a command. I am looking to replicate the functionality of the Angular 2 command "ng generate component Test" in React. After searching online, I came across a reference at ...

Is there a way to determine the position of the highlighted text within a textarea?

Is there a simple way to calculate the position of the selected text within a textarea using vanilla JavaScript or Angular (possibly with a directive)? This is important in order to display a div with a popup above the selected text. Coordinates are need ...

``What is the mechanism behind callbacks in AngularJS when making a call to a REST service?

Currently, I am diving into the world of AngularJS and REST. The code snippet that I'm analyzing has the term callback repeatedly used in an authentication function. I'm curious to know if "callback" is a JavaScript or Angular keyword, or simply ...

Influence the behavior of surrounding elements as we move our cursor over them

I want to create an effect where I have two images, with the first one hidden initially. When we hover over the second image, the first image should become visible. Here are the codes and class names related to the images: <div class="entrycontent"&g ...

Tips for sending repeated ajax requests for multiple forms within a step-by-step wizard

I am currently using a plugin to develop a wizard with steps. I have encountered an issue where the ajax call is being triggered on every step transition, leading to infinite calls. To address this problem, I implemented a check to prevent multiple ajax ca ...

Angular 2 TypeScript: Accelerating the Increment Number Speed

I'm working with a function in Angular 4 that is triggered when the arrow down key is pressed. Each time the arrow down key is hit, the counter increments by 1. In this function, I need to run another function if the counter reaches a certain speed. ...

Change a TypeScript alias within the @types namespace

While using Typescript 3, I encountered a situation where I needed to modify a type alias from the @types/json-schema definition provided by DefinitelyTyped. The issue arose when I wanted to incorporate a custom schema type into my code. Since this custom ...

Looking to apply a filter using an object in lodash that includes a condition for a range of values

We have developed a video game database and now we need to filter users based on their game and rank preferences. The data structure is outlined below: [{ "key": 86, "position": [ 40.369, -3.5419 ], "info": { "gamesplayin ...

Concealing and revealing content using JQuery based on user input in

I'm attempting to create a feature where the visibility of a password field is determined by the value of another input element. For instance, when the username is set to "admin", the password field should be hidden. If any other value is entered in ...

Examining AngularJS Jasmine Promises in IsolationDive into the world

Seeking help for testing a mocked Service with chained promises. Factory for Testing app.factory('factory', [ 'service', function( service ){ var baz; return { updateMe: function( updateObj ){ // do stuff with upd ...

Which one should I utilize for a single-page application with login separation: $stateProvider or $routeProvider?

I am trying to build a single page app with login separation, meaning that certain views can only be accessed by authenticated users. My initial code looks like this: .config(function ($routeProvider) { $routeProvider .when('/', { ...

What is the most effective method for locating and modifying the initial instance of an element within a group?

In my Javascript/Typescript collection, I have the following items: [ {"order":1,"step":"abc:","status":true}, {"order":2,"step":"xyz","status":true}, {"order":3,"step":"dec","status":false}, {"order":4,"step":"pqr","status":false}, {"order":5,"step":" ...

How to Dynamically Update Sass Styles with Webpack 2?

Currently, I am in the process of setting up a React application that utilizes Webpack2, webpack-dev-middleware, and HMR for the development phase. One peculiar issue that I have encountered is related to updating .scss files. When I make changes to my .sc ...

Adjust the quantity of divs shown depending on the value entered in a text input field

It seems like I am on the right track, but there is something simple that I am missing. I'm currently utilizing the jQuery knob plugin to update the input field. $('document').ready(function() { $(".knob").knob({ c ...

The error message displays "window.addEventListener is not a function", indicating that

Recently, I've been dealing with this code snippet: $(document).ready(function(){ $(window).load(function() { window.addEventListener("hashchange", function() { scrollBy(0, -50);}); var shiftWindow = function() { scrollBy(0, - ...

Angular.js has been activated with the chosen:open event

I've been implementing the chosen directive for AngularJS from this source and so far it's performing admirably. However, my goal is to trigger the chosen:open event in order to programmatically open the dropdown menu as outlined in the chosen do ...

Issue with JSON parsing on non-Chrome web browsers

Encountering a problem with parsing fetched JSON data from browsers other than Chrome, Firefox providing error message: "SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data". Notably, code functions in local node.js environmen ...