Creating a customized control in Nativescript: Enhancing Dependency Properties

I am currently developing a custom component that consists of a list of buttons.

Whenever a user clicks on a button, I modify its CSS class and then I want to add it to a custom property called "selectedItems" in order to retrieve it in my ViewModel.

However, when I try to push the button into the "selectedItems" array property, no event is triggered and I do not receive the information. I have also attempted to reset the entire array with no success.

I am unsure about how to proceed with this issue.

Below is the code for my component:

import {WrapLayout} from "ui/layouts/wrap-layout";
import {EventData} from "data/observable";
import {ValueButton} from "./value-button";
import dependencyObservableModule = require("ui/core/dependency-observable");

// Rest of the code continues as provided...

Could you provide some assistance?

Answer №1

It turns out I made an error by databinding my property.

Within the XML, I utilized the component in the following way:

<vs:ValuesSelector items="{{ criterias }}" selectedItems="{{ myObject.selectedCriterias }}" />

I assumed that the default value of [] specified in the component would create the selectedCriterias property, but in reality, I never initialized it in the ViewModel.

To rectify this issue in the ViewModel, here is the solution:

  • Before

    this.myObject = { id : 0 };

  • After

    this.myObject = { id : 0, selectedCriterias: [] };

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

Content method in Esri Maps PopupTemplate is executed only once for each feature

I am integrating Esri maps into an Angular app and utilizing Angular components to render popups by passing data from the PopupTemplate's content method: layer.popupTemplate = new PopupTemplate({ content: (feature: { graphic: __esri.Graphic }) => ...

Determine the return type of a function based on the parameter type that is inferred

I am seeking to define a simple function that checks a condition and returns either a value or a default. In most cases, the default is constant, so it would be beneficial to return a union of expected and default value types to properly narrow it down at ...

The wildcard syntax for importing statements in Angular 2

I created multiple classes in a single file with the following structure file: myclasses.ts export class Class1 {....} export class Class2 {....} export class Class3 {....} Now I am attempting to import all of them using a wildcard like this import {*} ...

How do you switch the chart type by clicking on the dropdown menu in Angular and TypeScript, using Highcharts?

Struggling to figure out how to change the chart type in an Angular component typescript file when clicking on a dropdown. Here's what I have so far: Any ideas why it's not working? onOptionsSelected(value:string){ console.log("the sele ...

Angular - The differ is unable to find support for the object 'Item One' which is of type 'string'. NgFor is only able to bind to Iterables like Arrays and not individual objects

Many questions on StackOverflow share similarities with this one, but I have not been able to find a solution that fits my issue. My code functions correctly when attempting to populate items in a "Select" control. It successfully retrieves data if the it ...

Issues within the team relating to the assortment of items in the shopping cart

Working on an angular online shop and facing a challenge here. We have a list of products, but I need to single out one specific product from the list when the "add to cart" button is clicked. Currently exploring this in the product.component.ts file with ...

Error: The identifier HTMLVideoElement has not been declared

Encountering an issue while attempting to build my Angular 9 Universal project for SSR: /Users/my-project/dist/server.js:28676 Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__metadata"])("design:type", HTMLVideoElement) ReferenceError: HTMLVideoElem ...

Is there a way to turn off linting while utilizing vue-cli serve?

I am currently running my project using vue-cli by executing the following command: vue-cli-service serve --open Is there a way to stop all linting? It seems like it's re-linting every time I save, and it significantly slows down the process of ma ...

Jasmine: utilizing unit test to spy on the invocation of a nested function

When running unit tests for an Angular app, I need to spy on a function called func1 to check if it is being called. However, within func1 there is a call to func2 and I also want to spy on that to see if it is being called. How should I structure my unit ...

Navigate back to the initial page in Ionic2 using the navpop function

I have an application that needs to guide the user step by step. While I am aware of using navpop and navpush for navigating between pages, I am unsure about how to use navpop to go back to the first page. Currently, I am attempting to pop() twice if ther ...

Where does tsc retrieve its definitions from when utilizing npm definitions?

After transitioning from using typings to just relying on npm, I noticed that the @types directory in node_modules is present, but there are no additional files required. Previously with typings, I always had to include the index.d.ts file within the typi ...

Tips on utilizing index and eliminating React Warning: Ensure every child within a list has a distinct "key" prop

Hello, I am encountering an issue where I need to properly pass the index in this component. Can you help me figure out how to do that? Error: react-jsx-dev-runtime.development.js:117 Warning: Each child in a list should have a unique "key" prop ...

Encountering a problem while attempting to host an Angular application on localhost:4200

After executing the ng serve command, I encountered an issue in the browser: An error occurred while trying to resolve "localhost:4200" ("") for "10.238.0.0": rpc error: code = Unknown desc = no such record I apologize if this question seems basic, as I ...

Rule in ESLint mandating return type for arrow functions

I currently have the following arrow function within my Angular project: this.httpClient.get('url').subscribe((response)=>{ }); It is important to note that ESLint should detect an error in the above code due to not specifying a return type. ...

Issue with PassportJS and Express 4 failing to properly store cookies/session data

I have a situation with my Express 4 app using Passport 0.3.2. I've set up a passport-local strategy, and it's successfully retrieving the user information when the /session endpoint is provided with a username and password. The issue arises whe ...

What is the best way to transform accented characters into standard Latin characters in typescript?

I am interested in converting characters with accents or other special symbols to their corresponding regular characters: á, à, â should become "a" é, ê should be e Ç to C and so on. This task could be achieved by chaining together numerous .repla ...

Next.js is experiencing issues with the build process

I encountered an issue while working on a Next.js project with NextAuth.js. The problem arises when I try to define my authOptions, as a TypeScript error indicates that the object is not compatible with the expected type for AuthOptions. Here's the sn ...

Is there a way to create a TypeScript function that can accept both mutable and immutable arrays as arguments?

Writing the following method became quite complicated for me. The challenge arose because any method receiving the result from catchUndefinedList now needs to handle both mutable and immutable arrays. Could someone offer some assistance? /** * Catch any ...

Creating a Typescript Library that Relies on Web Assembly?

I'm considering developing a TypeScript library for distributions that will rely on cephes. To enable the use of web assembly in browsers, we need to compile it in the following way: const cephes = require('cephes'); // Browser await cephe ...

Execute consecutive Angular2 functions in a sequential manner, one following the next

In my Angular2 project, I have a service that fetches data for dropdown menus on a form. However, when I call this service multiple times with different parameters in the form component initialization, only the last call seems to work, overriding the previ ...