{"id":3237,"date":"2025-04-15T07:56:57","date_gmt":"2025-04-15T05:56:57","guid":{"rendered":"https:\/\/www.thecodecampus.de\/blog\/?p=3237"},"modified":"2025-07-21T09:27:48","modified_gmt":"2025-07-21T07:27:48","slug":"what-are-linked-signals","status":"publish","type":"post","link":"https:\/\/www.thecodecampus.de\/blog\/what-are-linked-signals\/","title":{"rendered":"Angular Signals Part 6 &#8211; What are Linked Signals?"},"content":{"rendered":"<p><strong><em>Klicke\u00a0<a href=\"https:\/\/www.thecodecampus.de\/blog\/was-sind-linked-signals\/\">hier<\/a>\u00a0f\u00fcr die deutsche Version des Blog-Posts.<\/em><\/strong><\/p>\n<h2>Extend the functionality of your Signals with Linked Signals<\/h2>\n<p>A new feature has now been introduced with Angular 19: <strong>Linked Signals<\/strong>. If you&#8217;re wondering: What are Linked Signals? And what are the benefits of using them? You&#8217;ve come to the right place. We&#8217;ll explain how Linked Signals work and how you can use them to extend the functionality of your Signals. If you want a quick refresher on Angular Signals, we have another article that&#8217;s just right for you. In our <a href=\"https:\/\/www.thecodecampus.de\/blog\/angular-guide-signals-and-hot-topics\/\">Angular Guide<\/a>, we give you an overview of all the articles in our Angular Signals series, starting with: What are Signals actually and what benefits do they bring?<\/p>\n<p>So what are Linked Signals: They are basically similar to the <strong>readonly<\/strong> signals created with <code>computed()<\/code>, with one difference &#8211; Linked Signals are <strong>writeable<\/strong> signals, which means they can be changed manually, like <code>signal()<\/code>. This means that their value does not depend exclusively on the signal in the callback function, but can also be specifically adjusted. In this blog article, we will look at how to create Linked Signals and what problem they solve.<\/p>\n<p>If you want to learn more about Signal Inputs and Angular in detail, visit one of our Angular courses:<\/p>\n<ul>\n<li>Angular Basic Training: <a href=\"https:\/\/www.thecodecampus.de\/schulungen\/angular\">https:\/\/www.thecodecampus.de\/schulungen\/angular<\/a><\/li>\n<li>Advanced Training: <a href=\"https:\/\/www.thecodecampus.de\/schulungen\/angular-advanced\">https:\/\/www.thecodecampus.de\/schulungen\/angular-advanced<\/a><\/li>\n<\/ul>\n<h2>The problem with readonly signals<\/h2>\n<p>Before we look at Linked Signals, let&#8217;s first look at the underlying problem. To do this, we will create a small example and apply signals as we have already learned about them.<\/p>\n<p>Our scenario is about restaurant information with two central functions:<\/p>\n<ol>\n<li>The user is automatically shown the details of the top-rated restaurant.<\/li>\n<li>The user can manually select a restaurant from a list.<\/li>\n<\/ol>\n<h3>What we know about Signals so far<\/h3>\n<p>Let&#8217;s take care of the first requirement first. We create a <code>signal()<\/code> called restaurants, which contains a list of restaurant objects. Then a <code>computed()<\/code>\u00a0signal called <code>selectedRestaurant<\/code> is created, which returns the restaurant with the highest score from the <code>restaurants<\/code>\u00a0list. As a reminder, if the <code>restaurants<\/code> signal is changed by <code>set()<\/code>\u00a0or <code>update()<\/code>, the callback function of the dependent signal (<code>selectedRestaurant<\/code>) is automatically executed and the highest rated restaurant is determined.<\/p>\n<pre class=\"lang:ts decode:true\">import { Component, computed, Signal, signal } from '@angular\/core';\r\n\r\n@Component({\r\n...\r\n  template: `\r\n    &lt;h3&gt;All restaurants:&lt;\/h3&gt;\r\n    @for (restaurant of this.restaurants(); track restaurant) {\r\n      &lt;li&gt;\r\n      Name: {{restaurant.name}} Rating: {{restaurant.rating}}\r\n      &lt;\/li&gt;\r\n    }\r\n    &lt;br&gt;\r\n    &lt;h3&gt;Restaurant details:&lt;\/h3&gt;\r\n    &lt;div&gt;Name: {{selectedRestaurant().name}} Rating: {{selectedRestaurant().rating}}&lt;\/div&gt;\r\n    &lt;div&gt;Address: {{selectedRestaurant().address}}&lt;\/div&gt;\r\n`,\r\n\r\n}) \r\n\r\nexport class RestaurantSignalsComponent {\r\n\r\n  \/\/ Create Restaurant Signal\r\n  restaurants: Signal&lt;Restaurant[]&gt; = signal([\r\n    { name: 'Pizza Paradiso', rating: 2.0, address: '123 Pizza Street, Rome' },\r\n    { name: 'Sushi World', rating: 4.9, address: '456 Sushi Lane, Tokyo' },\r\n    { name: 'Pasta Palace', rating: 3.0, address: '789 Pasta Avenue, Florence' },\r\n  ]);\r\n\r\n  \/\/ Create Computed Signal\r\n  selectedRestaurant = computed(() =&gt; {\r\n    return this.restaurants().sort((a, b) =&gt; b.rating - a.rating)[0];\r\n  });\r\n}<\/pre>\n<p>We would now like to implement the second requirement so that the user can select a restaurant manually via a click event, for example, instead of just being shown the top-rated restaurant automatically. An obvious solution would be to change <code>selectedRestaurant<\/code>\u00a0with <code>set()<\/code>\u00a0or <code>update()<\/code>. However, this is <strong>not possible<\/strong> because a <code>computed()<\/code> signal, as mentioned at the beginning, is <strong>readonly<\/strong> and only updates itself when its dependent signals change. Therefore, the following code would not work as desired.<\/p>\n<pre class=\"lang:default decode:true\">...\r\n@Component({...})\r\nexport class RestaurantSignalsComponent {\r\n  ...\r\n  \/\/ Create Computed Signal\r\n  selectedRestaurant = computed(() =&gt; {\r\n    return this.restaurants().sort((a, b) =&gt; b.rating - a.rating)[0];\r\n  });\r\n\r\n  \/\/ Computed Signal: Will not work\r\n  selectRestaurantOnList(restaurant: any){\r\n    this.selectedRestaurant.set(restaurant) \/\/ X ERROR\r\n  }\r\n\r\n}\r\n<\/pre>\n<p>To combine <code>computed()<\/code>\u00a0with a manual selection, we need an additional <strong>writeable<\/strong> signal that stores the value selected by the user. Since <code>computed()<\/code> is <strong>readonly<\/strong>, the value cannot be set directly. Instead, another <code>signal()<\/code>\u00a0or an <code>effect()<\/code>\u00a0can be used that reacts to changes in the <code>restaurants<\/code>\u00a0signal and ensures that the selected restaurant is only set automatically if the user has not yet made their own selection. This imperative approach is cumbersome as we need to explicitly control when and how the selected restaurant is updated instead of solving this purely declaratively. This is exactly where <strong>Linked Signals<\/strong> offer a much more elegant alternative.<\/p>\n<h2>The solution: Create Linked Signals<\/h2>\n<p>We would now like to implement our example with Linked Signals and show how much easier it is to implement the requirements. A <code>linkedSignal()<\/code>\u00a0combines <code>computed()<\/code>\u00a0and <code>signal()<\/code>\u00a0by automatically updating calculated values while allowing them to be overwritten manually. This means that they are <strong>writeable<\/strong>, so that the user can adjust the value of <code>selectedRestaurant<\/code> via <code>set()<\/code>\u00a0or <code>update()<\/code>\u00a0as desired.<\/p>\n<p>A Linked Signal can be easily created with the <code>linkedSignal()<\/code>\u00a0function. Selected restaurants are set using the <code>set()<\/code>\u00a0function.<\/p>\n<pre class=\"lang:ts decode:true\">_import { linkedSignal, signal } from '@angular\/core';\r\n@Component({...})\r\nexport class RestaurantLinkedSignalsComponent {\r\n\r\n  restaurants = signal([\r\n    { name: 'Pizza Paradiso', rating: 2.0, address: '123 Pizza Street, Rome'},\r\n    { name: 'Sushi World', rating: 4.9, address: '456 Sushi Lane, Tokyo'},\r\n    { name: 'Pasta Palace',rating: 3.0, address: '789 Pasta Avenue, Florence'},\r\n  ]);\r\n\r\n  \/\/ Create Linked Signal\r\n  selectedRestaurant = linkedSignal(() =&gt; {\r\n    return this.restaurants().sort((a, b) =&gt; b.rating - a.rating)[0];\r\n  })\r\n\r\n  \/\/ Manual Selection\r\n  selectRestaurantOnList(restaurant: Restaurant) {\r\n    this.selectedRestaurant.set(restaurant);\r\n  }\r\n\r\n}<\/pre>\n<h3>Alternative creation<\/h3>\n<p>An object-based approach can also be used for generation. In this case, the source and the computation are specified explicitly. This syntax is more flexible and is suitable for complex use cases.<\/p>\n<pre class=\"lang:ts decode:true\">...\r\nselectedRestaurant = linkedSignal({\r\n  source: this.restaurants,\r\n  computation: () =&gt; {\r\n    return this.restaurants().sort((a, b) =&gt; b.rating - a.rating)[0];\r\n  }\r\n});\r\n<\/pre>\n<h2>Conclusion<\/h2>\n<p><strong>Linked Signals<\/strong> close a gap between <strong>readonly<\/strong>\u00a0<code>computed()<\/code> signals and normal writeable <code>signal()<\/code> signals. They allow calculated values to be updated automatically, while at the same time they can be <strong>overwritten manually<\/strong>.<\/p>\n<ul>\n<li><code>signal()<\/code>: A simple signal that stores a value and can be both read and modified (<strong>writetable<\/strong>).<\/li>\n<li><code>computed()<\/code>: A readable signal that is automatically recalculated when dependent signals change, but cannot be changed directly (<strong>readonly<\/strong>).<\/li>\n<li><code>linkedSignal()<\/code>: A signal that is automatically recalculated when dependent signals change, and which can also be changed manually (writeable).<\/li>\n<\/ul>\n<h2>Experience is the best teacher: Hands-on with Linked Signals<\/h2>\n<p>Are you ready to put theory into practice? In this interactive StackBlitz example, you will find the sample application presented, which takes up the basic concepts of Linked Signals and includes the examples and functions presented.<\/p>\n<p><iframe height=\"400\" style=\"width: 100%;\" src=\"https:\/\/stackblitz.com\/edit\/stackblitz-starters-sxc2s5fy?embed=1&amp;file=src%2Fmain.ts\" scrolling=\"no\"><span data-mce-type=\"bookmark\" style=\"display: inline-block; width: 0px; overflow: hidden; line-height: 0;\" class=\"mce_SELRES_start\">\ufeff<\/span><\/iframe><\/p>\n<h2>What comes next?<\/h2>\n<p>In addition to Linked Signals, Angular 19 also introduced the resource experiment in order to seamlessly integrate asynchronous data into signal-based applications. In our <a href=\"https:\/\/www.thecodecampus.de\/blog\/reactive-apis-in-angular-resource-api-part-1\/\">next article<\/a>, we will introduce you to the Resource API and the <code>resource()<\/code> and <code>rxResource()<\/code> functions.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A new feature has now been introduced with Angular 19: Linked Signals. If you&#8217;re wondering: What are Linked Signals? And what are the benefits of using them? You&#8217;ve come to the right place. We&#8217;ll explain how linked signals work and how you can use them to extend the functionality of your Signals. If [&#8230;]<\/p>\n","protected":false},"author":39,"featured_media":3493,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[73,185,163,168,169,189,167],"tags":[112,187,172,188,181,171],"class_list":["post-3237","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-angular","category-angular-19","category-angular-performance-optimization","category-angular-signals","category-change-detection","category-linked-signals","category-signals","tag-angular","tag-angular-19","tag-angular-change-detection","tag-angular-linked-signals","tag-angular-performance-optimization","tag-angular-signals"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>What are Linked Signals?<\/title>\n<meta name=\"description\" content=\"Have you been asking yourself since Angular 19: What are Linked Signals? We have the answer and show you how to use them effectively.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.thecodecampus.de\/blog\/what-are-linked-signals\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"What are Linked Signals?\" \/>\n<meta property=\"og:description\" content=\"Have you been asking yourself since Angular 19: What are Linked Signals? We have the answer and show you how to use them effectively.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.thecodecampus.de\/blog\/what-are-linked-signals\/\" \/>\n<meta property=\"og:site_name\" content=\"Web Development tips and tricks - theCodeCampus Blog\" \/>\n<meta property=\"article:published_time\" content=\"2025-04-15T05:56:57+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-07-21T07:27:48+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2025\/05\/angular-linked-signals.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"1200\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Cornelius Rost\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Cornelius Rost\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/what-are-linked-signals\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/what-are-linked-signals\\\/\"},\"author\":{\"name\":\"Cornelius Rost\",\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/#\\\/schema\\\/person\\\/ab388f18048c8230505aa5012825ca69\"},\"headline\":\"Angular Signals Part 6 &#8211; What are Linked Signals?\",\"datePublished\":\"2025-04-15T05:56:57+00:00\",\"dateModified\":\"2025-07-21T07:27:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/what-are-linked-signals\\\/\"},\"wordCount\":831,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/what-are-linked-signals\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/angular-linked-signals.png\",\"keywords\":[\"Angular\",\"Angular 19\",\"Angular Change Detection\",\"Angular Linked Signals\",\"Angular Performance Optimization\",\"Angular Signals\"],\"articleSection\":[\"Angular\",\"Angular 19\",\"Angular Performance Optimization\",\"Angular Signals\",\"Change Detection\",\"Linked Signals\",\"Signals\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/what-are-linked-signals\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/what-are-linked-signals\\\/\",\"url\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/what-are-linked-signals\\\/\",\"name\":\"What are Linked Signals?\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/what-are-linked-signals\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/what-are-linked-signals\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/angular-linked-signals.png\",\"datePublished\":\"2025-04-15T05:56:57+00:00\",\"dateModified\":\"2025-07-21T07:27:48+00:00\",\"description\":\"Have you been asking yourself since Angular 19: What are Linked Signals? We have the answer and show you how to use them effectively.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/what-are-linked-signals\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/what-are-linked-signals\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/what-are-linked-signals\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/angular-linked-signals.png\",\"contentUrl\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/angular-linked-signals.png\",\"width\":1200,\"height\":1200,\"caption\":\"Angular Signals Part 6 - Linked Signals\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/what-are-linked-signals\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Angular Signals Part 6 &#8211; What are Linked Signals?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/\",\"name\":\"Web Development tips and tricks - theCodeCampus Blog\",\"description\":\"Tips, tricks, and experiences about developing web and mobile applications with Angular, TypeScript, and Testing.\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/#organization\",\"name\":\"theCodeCampus\",\"url\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/01\\\/TCC-Logo-Bildmarke-quadratisch.jpg\",\"contentUrl\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/01\\\/TCC-Logo-Bildmarke-quadratisch.jpg\",\"width\":156,\"height\":156,\"caption\":\"theCodeCampus\"},\"image\":{\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/#\\\/schema\\\/person\\\/ab388f18048c8230505aa5012825ca69\",\"name\":\"Cornelius Rost\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/10\\\/cropped-cornelius-rost-tcc-author-96x96.png\",\"url\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/10\\\/cropped-cornelius-rost-tcc-author-96x96.png\",\"contentUrl\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/10\\\/cropped-cornelius-rost-tcc-author-96x96.png\",\"caption\":\"Cornelius Rost\"},\"description\":\"I am Cornelius, a working student in web development at W11K, where I work on web projects and develop practical solutions. I am currently studying for a Master's degree at the University of Stuttgart and am deepening my knowledge of software engineering.\",\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/in\\\/cornelius-rost-1b81a22ab\"],\"url\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/author\\\/crost\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"What are Linked Signals?","description":"Have you been asking yourself since Angular 19: What are Linked Signals? We have the answer and show you how to use them effectively.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.thecodecampus.de\/blog\/what-are-linked-signals\/","og_locale":"en_US","og_type":"article","og_title":"What are Linked Signals?","og_description":"Have you been asking yourself since Angular 19: What are Linked Signals? We have the answer and show you how to use them effectively.","og_url":"https:\/\/www.thecodecampus.de\/blog\/what-are-linked-signals\/","og_site_name":"Web Development tips and tricks - theCodeCampus Blog","article_published_time":"2025-04-15T05:56:57+00:00","article_modified_time":"2025-07-21T07:27:48+00:00","og_image":[{"width":1200,"height":1200,"url":"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2025\/05\/angular-linked-signals.png","type":"image\/png"}],"author":"Cornelius Rost","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Cornelius Rost","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.thecodecampus.de\/blog\/what-are-linked-signals\/#article","isPartOf":{"@id":"https:\/\/www.thecodecampus.de\/blog\/what-are-linked-signals\/"},"author":{"name":"Cornelius Rost","@id":"https:\/\/www.thecodecampus.de\/blog\/#\/schema\/person\/ab388f18048c8230505aa5012825ca69"},"headline":"Angular Signals Part 6 &#8211; What are Linked Signals?","datePublished":"2025-04-15T05:56:57+00:00","dateModified":"2025-07-21T07:27:48+00:00","mainEntityOfPage":{"@id":"https:\/\/www.thecodecampus.de\/blog\/what-are-linked-signals\/"},"wordCount":831,"commentCount":0,"publisher":{"@id":"https:\/\/www.thecodecampus.de\/blog\/#organization"},"image":{"@id":"https:\/\/www.thecodecampus.de\/blog\/what-are-linked-signals\/#primaryimage"},"thumbnailUrl":"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2025\/05\/angular-linked-signals.png","keywords":["Angular","Angular 19","Angular Change Detection","Angular Linked Signals","Angular Performance Optimization","Angular Signals"],"articleSection":["Angular","Angular 19","Angular Performance Optimization","Angular Signals","Change Detection","Linked Signals","Signals"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.thecodecampus.de\/blog\/what-are-linked-signals\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.thecodecampus.de\/blog\/what-are-linked-signals\/","url":"https:\/\/www.thecodecampus.de\/blog\/what-are-linked-signals\/","name":"What are Linked Signals?","isPartOf":{"@id":"https:\/\/www.thecodecampus.de\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.thecodecampus.de\/blog\/what-are-linked-signals\/#primaryimage"},"image":{"@id":"https:\/\/www.thecodecampus.de\/blog\/what-are-linked-signals\/#primaryimage"},"thumbnailUrl":"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2025\/05\/angular-linked-signals.png","datePublished":"2025-04-15T05:56:57+00:00","dateModified":"2025-07-21T07:27:48+00:00","description":"Have you been asking yourself since Angular 19: What are Linked Signals? We have the answer and show you how to use them effectively.","breadcrumb":{"@id":"https:\/\/www.thecodecampus.de\/blog\/what-are-linked-signals\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.thecodecampus.de\/blog\/what-are-linked-signals\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.thecodecampus.de\/blog\/what-are-linked-signals\/#primaryimage","url":"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2025\/05\/angular-linked-signals.png","contentUrl":"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2025\/05\/angular-linked-signals.png","width":1200,"height":1200,"caption":"Angular Signals Part 6 - Linked Signals"},{"@type":"BreadcrumbList","@id":"https:\/\/www.thecodecampus.de\/blog\/what-are-linked-signals\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.thecodecampus.de\/blog\/"},{"@type":"ListItem","position":2,"name":"Angular Signals Part 6 &#8211; What are Linked Signals?"}]},{"@type":"WebSite","@id":"https:\/\/www.thecodecampus.de\/blog\/#website","url":"https:\/\/www.thecodecampus.de\/blog\/","name":"Web Development tips and tricks - theCodeCampus Blog","description":"Tips, tricks, and experiences about developing web and mobile applications with Angular, TypeScript, and Testing.","publisher":{"@id":"https:\/\/www.thecodecampus.de\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.thecodecampus.de\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.thecodecampus.de\/blog\/#organization","name":"theCodeCampus","url":"https:\/\/www.thecodecampus.de\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.thecodecampus.de\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2024\/01\/TCC-Logo-Bildmarke-quadratisch.jpg","contentUrl":"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2024\/01\/TCC-Logo-Bildmarke-quadratisch.jpg","width":156,"height":156,"caption":"theCodeCampus"},"image":{"@id":"https:\/\/www.thecodecampus.de\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.thecodecampus.de\/blog\/#\/schema\/person\/ab388f18048c8230505aa5012825ca69","name":"Cornelius Rost","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2024\/10\/cropped-cornelius-rost-tcc-author-96x96.png","url":"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2024\/10\/cropped-cornelius-rost-tcc-author-96x96.png","contentUrl":"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2024\/10\/cropped-cornelius-rost-tcc-author-96x96.png","caption":"Cornelius Rost"},"description":"I am Cornelius, a working student in web development at W11K, where I work on web projects and develop practical solutions. I am currently studying for a Master's degree at the University of Stuttgart and am deepening my knowledge of software engineering.","sameAs":["https:\/\/www.linkedin.com\/in\/cornelius-rost-1b81a22ab"],"url":"https:\/\/www.thecodecampus.de\/blog\/author\/crost\/"}]}},"_links":{"self":[{"href":"https:\/\/www.thecodecampus.de\/blog\/wp-json\/wp\/v2\/posts\/3237","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.thecodecampus.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.thecodecampus.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.thecodecampus.de\/blog\/wp-json\/wp\/v2\/users\/39"}],"replies":[{"embeddable":true,"href":"https:\/\/www.thecodecampus.de\/blog\/wp-json\/wp\/v2\/comments?post=3237"}],"version-history":[{"count":9,"href":"https:\/\/www.thecodecampus.de\/blog\/wp-json\/wp\/v2\/posts\/3237\/revisions"}],"predecessor-version":[{"id":3532,"href":"https:\/\/www.thecodecampus.de\/blog\/wp-json\/wp\/v2\/posts\/3237\/revisions\/3532"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.thecodecampus.de\/blog\/wp-json\/wp\/v2\/media\/3493"}],"wp:attachment":[{"href":"https:\/\/www.thecodecampus.de\/blog\/wp-json\/wp\/v2\/media?parent=3237"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.thecodecampus.de\/blog\/wp-json\/wp\/v2\/categories?post=3237"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.thecodecampus.de\/blog\/wp-json\/wp\/v2\/tags?post=3237"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}