{
  "action": "Product-ShowQuickView",
  "queryString": "pid=1835087485",
  "locale": "default",
  "product": {
    "uuid": "65cf5d7c984c47cd3373e3c8cc",
    "id": "1835087485",
    "productName": "Learning Angular: a Practical Guide to Building Web Applications with Modern Angular",
    "productType": "standard",
    "brand": "Does Not Apply",
    "price": {
      "sales": {
        "value": 65.1,
        "currency": "AUD",
        "formatted": "A$65.10",
        "decimalPrice": "65.10"
      },
      "list": null
    },
    "renderedPrice": "    <div class=\"price\">\n        \n        \n<span>\n    \n\n    \n\n    \n    <span class=\"sales\">\n        \n        \n        \n            <span class=\"value\" content=\"65.10\"></span>\n        \n        A$65.10\n\n\n    </span>\n</span>\n\n    </div>\n\n\n",
    "images": {
      "large": [
        {
          "alt": "Learning Angular: a Practical Guide to Building Web Applications with Modern Angular",
          "url": "/on/demandware.static/-/Sites-storefront-catalog-m-en/default/dwbfc9075b/images/large/8aad3d8eb24c84d824b343a95cfa4b5d.png",
          "index": "0",
          "title": "Learning Angular: a Practical Guide to Building Web Applications with Modern Angular",
          "absURL": "https://www.emega.com.au/on/demandware.static/-/Sites-storefront-catalog-m-en/default/dwbfc9075b/images/large/8aad3d8eb24c84d824b343a95cfa4b5d.png"
        }
      ],
      "small": [
        {
          "alt": "Learning Angular: a Practical Guide to Building Web Applications with Modern Angular",
          "url": "/on/demandware.static/-/Sites-storefront-catalog-m-en/default/dwbfc9075b/images/large/8aad3d8eb24c84d824b343a95cfa4b5d.png",
          "index": "0",
          "title": "Learning Angular: a Practical Guide to Building Web Applications with Modern Angular",
          "absURL": "https://www.emega.com.au/on/demandware.static/-/Sites-storefront-catalog-m-en/default/dwbfc9075b/images/large/8aad3d8eb24c84d824b343a95cfa4b5d.png"
        }
      ]
    },
    "selectedQuantity": 1,
    "minOrderQuantity": 1,
    "maxOrderQuantity": 10,
    "variationAttributes": null,
    "longDescription": "<div> <div> <div> <p><span>Learn Angular by building a real-world e-shop web app, step-by-step from scaffolding to deployment, with expert guidance every step of the way</span></p><p><span>Purchase of the print or Kindle book includes a free eBook in PDF format.</span></p><p><span>“A must-read natural extension to Angular's official docs.” - Daniel Glejzner, Microsoft MVP, Nx Champion</span></p><p><span>\"Learning Angular provides the reader with an experience of building upon a simple application that is introduced at the beginning of the book.\" – Manfred Steyer, Google Developer Expert</span></p><h4><span>Key Features</span></h4><ul><li><span><span>Explore the basics of Angular development, from components and templates to forms, routing, and services</span></span></li><li><span><span>Get up to speed with the new paradigms modern Angular brings, including standalone APIs, new control flow syntax, Signals, and server-side rendering (SSR)</span></span></li><li><span><span>Discover best practices for building, deploying, debugging, and testing Angular applications</span></span></li></ul><h4><span>Book Description</span></h4><p><span>Dive into Angular Development — With the Most Trusted Guide in the Industry</span></p><p><span>Angular is one of the most powerful and widely adopted JavaScript frameworks and Learning Angular is your go-to guide for building real-world, production-ready web applications from the ground up. Written by a seasoned Angular developer and Google Developer Expert, this hands-on guide walks you through every step of modern frontend development.</span></p><p><span>This edition captures the latest evolution in the Angular ecosystem, often referred to as the “Angular Renaissance.” You'll work with standalone components, Angular Signals, and the updated control flow syntax, while also learning how to bridge these advancements with legacy code. A brand-new chapter explores how to boost performance with server-side rendering (SSR) and hydration.</span></p><p><span>More than just a tutorial, Learning Angular builds your confidence chapter by chapter, from scaffolding your first project to deploying it and applying TypeScript best practices along the way.</span></p><p><span>Whether you're new to Angular or brushing up your skills, this book offers a complete path to becoming a productive and future-ready Angular developer.</span></p><p><span>By the end, you’ll not only be able to build Angular apps from scratch, you’ll be equipped to build them with clarity, structure, and confidence.</span></p><h4><span>What you will learn</span></h4><ul><li><span><span>Use the Angular CLI to scaffold, build, and deploy new Angular applications</span></span></li><li><span><span>Create Angular applications using standalone APIs</span></span></li><li><span><span>Build rich components with Angular template syntax</span></span></li><li><span><span>Apply reactivity patterns with the RxJS library and Signals</span></span></li><li><span><span>Craft beautiful user interfaces using Angular Material</span></span></li><li><span><span>Create HTTP data services to access APIs and provide data to components</span></span></li><li><span><span>Improve your debugging and error handling skills during runtime and development</span></span></li><li><span><span>Optimize application performance with SSR and hydration techniques</span></span></li></ul><h4><span>Who this book is for</span></h4><p><span>This book is for JavaScript developers and web developers dipping their feet for the first time in the world of frontend development with Angular, as well as those migrating to the Angular framework to build professional web applications. Current Angular developers looking to catch up with modern Angular will also find this book useful.</span></p><p><span>You'll need prior exposure to JavaScript and a solid foundation in the basics of web programming before you get started with this book.</span></p><h4><span>Table of Contents</span></h4><ol><li><span><span>Building Your First Angular Application</span></span></li><li><span><span>Introduction to TypeScript</span></span></li><li><span><span>Structuring User Interfaces with Components</span></span></li><li><span><span>Enriching Applications Using Pipes and Directives</span></span></li><li><span><span>Managing Complex Tasks with Services</span></span></li></ol><p><span>(N.B. Please use the Read Sample option to see further chapters)</span></p> </div> </div> </div><div><h2>Item Details</h2><ul><li><strong>Publisher:</strong> Packt Publishing</li><li><strong>Dimensions:</strong> 1.93 x 19.05 x 23.5 cm</li><li><strong>Language:</strong> English</li><li><strong>Print length:</strong> 486 pages</li><li><strong>Item weight:</strong> 1.03 kg</li><li><strong>Edition:</strong> 5th ed.</li><li><strong>Book Type:</strong> Paperback</li><li><strong>ISBN-10:</strong> 1835087485</li><li><strong>ISBN-13:</strong> 978-1835087480</li><li><strong>Publication date:</strong> 9 January 2025</li></ul></div>",
    "shortDescription": null,
    "rating": 5,
    "promotions": null,
    "attributes": null,
    "availability": {
      "messages": [
        "In Stock"
      ],
      "inStockDate": null
    },
    "available": true,
    "options": [],
    "quantities": [
      {
        "value": "1",
        "selected": true,
        "url": "/on/demandware.store/Sites-eMEGA-Site/default/Product-Variation?pid=1835087485&quantity=1"
      },
      {
        "value": "2",
        "selected": false,
        "url": "/on/demandware.store/Sites-eMEGA-Site/default/Product-Variation?pid=1835087485&quantity=2"
      },
      {
        "value": "3",
        "selected": false,
        "url": "/on/demandware.store/Sites-eMEGA-Site/default/Product-Variation?pid=1835087485&quantity=3"
      },
      {
        "value": "4",
        "selected": false,
        "url": "/on/demandware.store/Sites-eMEGA-Site/default/Product-Variation?pid=1835087485&quantity=4"
      },
      {
        "value": "5",
        "selected": false,
        "url": "/on/demandware.store/Sites-eMEGA-Site/default/Product-Variation?pid=1835087485&quantity=5"
      },
      {
        "value": "6",
        "selected": false,
        "url": "/on/demandware.store/Sites-eMEGA-Site/default/Product-Variation?pid=1835087485&quantity=6"
      },
      {
        "value": "7",
        "selected": false,
        "url": "/on/demandware.store/Sites-eMEGA-Site/default/Product-Variation?pid=1835087485&quantity=7"
      },
      {
        "value": "8",
        "selected": false,
        "url": "/on/demandware.store/Sites-eMEGA-Site/default/Product-Variation?pid=1835087485&quantity=8"
      },
      {
        "value": "9",
        "selected": false,
        "url": "/on/demandware.store/Sites-eMEGA-Site/default/Product-Variation?pid=1835087485&quantity=9"
      },
      {
        "value": "10",
        "selected": false,
        "url": "/on/demandware.store/Sites-eMEGA-Site/default/Product-Variation?pid=1835087485&quantity=10"
      }
    ],
    "selectedProductUrl": "/eMEGA/1835087485.html?%2FeMEGA%2F1835087485.html=undefined&quantity=undefined",
    "readyToOrder": true,
    "online": true,
    "pageTitle": null,
    "pageDescription": null,
    "pageKeywords": null,
    "pageMetaTags": [
      {},
      {},
      {},
      {}
    ],
    "template": null
  },
  "addToCartUrl": {},
  "resources": {
    "info_selectforstock": "Select Styles for Availability",
    "assistiveSelectedText": "selected"
  },
  "quickViewFullDetailMsg": "View Full Details",
  "closeButtonText": "Close Quickview Dialog",
  "enterDialogMessage": "Start of Quickview dialog window. Select Close to cancel and close the window.",
  "template": "product/quickView.isml",
  "renderedTemplate": "<div class=\"product-quickview product-standard col product-wrapper product-detail\" data-pid=\"1835087485\">\n    <div class=\"row\">\n        <!-- Product Images Carousel -->\n        \n\n<div class=\"primary-images col-12 col-sm-6 cst-gallery-wrap\">\n\n    \n    <div id=\"pdpCarousel-1835087485\" class=\"carousel slide cst-original-carousel\" data-interval=\"0\"\n        data-prev=\"Previous\"\n        data-next=\"Next\">\n        \n        <div class=\"carousel-inner\" role=\"listbox\">\n            \n                <div class='carousel-item active'>\n                    <img src=\"/on/demandware.static/-/Sites-storefront-catalog-m-en/default/dwbfc9075b/images/large/8aad3d8eb24c84d824b343a95cfa4b5d.png\" class=\"d-block img-fluid\" alt=\"Learning Angular: a Practical Guide to Building Web Applications with Modern Angular image number 0\"\n                        itemprop=\"image\" />\n                </div>\n            \n        </div>\n        \n    </div>\n\n    \n    <div class=\"cst-gallery\" id=\"cst-gallery-1835087485\" data-pid=\"1835087485\" data-title=\"Learning Angular: a Practical Guide to Building Web Applications with Modern Angular\"\n        data-first-img=\"/on/demandware.static/-/Sites-storefront-catalog-m-en/default/dwbfc9075b/images/large/8aad3d8eb24c84d824b343a95cfa4b5d.png\">\n\n        \n        <div class=\"cst-gallery__thumbs\" id=\"cst-thumbs-1835087485\">\n            \n                \n                    <button class=\"cst-gallery__thumb is-active\"\n                type=\"button\" data-index=\"0\" data-large=\"/on/demandware.static/-/Sites-storefront-catalog-m-en/default/dwbfc9075b/images/large/8aad3d8eb24c84d824b343a95cfa4b5d.png\"\n                aria-label=\"Image 1\">\n                <img src=\"/on/demandware.static/-/Sites-storefront-catalog-m-en/default/dwbfc9075b/images/large/8aad3d8eb24c84d824b343a95cfa4b5d.png\" alt=\"Learning Angular: a Practical Guide to Building Web Applications with Modern Angular\" loading=\"lazy\" />\n                </button>\n                \n            \n            \n        </div>\n\n        \n        <div class=\"cst-gallery__main\">\n            <div class=\"cst-gallery__main-inner\" id=\"cst-main-inner-1835087485\">\n                <img class=\"cst-gallery__main-img\" id=\"cst-main-img-1835087485\"\n                    src=\"/on/demandware.static/-/Sites-storefront-catalog-m-en/default/dwbfc9075b/images/large/8aad3d8eb24c84d824b343a95cfa4b5d.png\" alt=\"Learning Angular: a Practical Guide to Building Web Applications with Modern Angular\" />\n                <div class=\"cst-gallery__zoom-panel\" id=\"cst-zoom-panel-1835087485\">\n                    <img class=\"cst-gallery__zoom-img\" id=\"cst-zoom-img-1835087485\"\n                        src=\"/on/demandware.static/-/Sites-storefront-catalog-m-en/default/dwbfc9075b/images/large/8aad3d8eb24c84d824b343a95cfa4b5d.png\" alt=\"\" />\n                </div>\n                <div class=\"cst-gallery__fullview-overlay\" id=\"cst-fullview-1835087485\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"\n                        stroke-width=\"2.5\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\" />\n                        <line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\" />\n                        <line x1=\"11\" y1=\"8\" x2=\"11\" y2=\"14\" />\n                        <line x1=\"8\" y1=\"11\" x2=\"14\" y2=\"11\" /></svg>\n                    Click to see full view\n                </div>\n            </div>\n        </div>\n    </div>\n\n    \n\n    <script type=\"application/json\" id=\"cst-imgs-1835087485\">\n        [{\"url\":\"/on/demandware.static/-/Sites-storefront-catalog-m-en/default/dwbfc9075b/images/large/8aad3d8eb24c84d824b343a95cfa4b5d.png\",\"alt\":\"Learning Angular: a Practical Guide to Building Web Applications with Modern Angular\"}]\n        </script>\n\n\n</div>\n\n        <!-- Product Name and Number -->\n        <div class=\"col-sm-6\">\n            <div class=\"row\">\n                <div class=\"col\">\n                    <section>\n                        <h1 class=\"product-name\">Learning Angular: a Practical Guide to Building Web Applications with Modern Angular</h1>\n                    </section>\n                </div>\n            </div>\n\n            <div class=\"detail-panel\">\n                <!-- Attributes -->\n                <section class=\"attributes\">\n\n                    <div class=\"row\">\n    <div class=\"col\">\n        \n    </div>\n</div>\n\n\n                        \n\n                        <div class=\"d-sm-none row availability align-self-end \" data-ready-to-order=\"true\" data-available=\"true\">\n                            \n<div class=\"col-4\">\n    <span class=\"availability non-input-label\">\n        Availability:\n    </span>\n</div>\n<div class=\"col-8\">\n    <ul class=\"list-unstyled availability-msg\">\n        <li>\n            \n                \n                    <div>In Stock</div>\n                \n            \n        </li>\n    </ul>\n</div>\n\n\n                        </div>\n\n                    <hr>\n\n                    <!-- Applicable Promotions -->\n                    <div class=\"row\">\n                        <div class=\"col-12 promotions\">\n                            <div class=\"align-self-center\">\n                                \n\n                            </div>\n                        </div>\n                    </div>\n                </section>\n\n                \n                    <!-- Options -->\n                    \n                \n            </div>\n        </div>\n    </div>\n\n    \n\n    \n</div>\n<div class=\"modal-footer row align-items-end\">\n    \n\n    <div class=\"hidden-xs-down col availability align-self-end global-availability\" data-ready-to-order=\"true\" data-available=\"true\">\n        <div class=\"row\">\n            \n<div class=\"col-4\">\n    <span class=\"availability non-input-label\">\n        Availability:\n    </span>\n</div>\n<div class=\"col-8\">\n    <ul class=\"list-unstyled availability-msg\">\n        <li>\n            \n                \n                    <div>In Stock</div>\n                \n            \n        </li>\n    </ul>\n</div>\n\n\n        </div>\n    </div>\n\n    <div class=\"col\">\n        <div class=\"row align-items-end\">\n            <!-- Quantity -->\n            <div class=\"hidden-xs-down col-4\">\n                \n                    \n<label for=\"quantity-1\">Quantity</label>\n<select class=\"quantity-select custom-select form-control\" id=\"quantity-1\">\n    \n        <option value=\"1\"\n                data-url=\"/on/demandware.store/Sites-eMEGA-Site/default/Product-Variation?pid=1835087485&amp;quantity=1\"\n                selected\n        >\n            1\n        </option>\n    \n        <option value=\"2\"\n                data-url=\"/on/demandware.store/Sites-eMEGA-Site/default/Product-Variation?pid=1835087485&amp;quantity=2\"\n                \n        >\n            2\n        </option>\n    \n        <option value=\"3\"\n                data-url=\"/on/demandware.store/Sites-eMEGA-Site/default/Product-Variation?pid=1835087485&amp;quantity=3\"\n                \n        >\n            3\n        </option>\n    \n        <option value=\"4\"\n                data-url=\"/on/demandware.store/Sites-eMEGA-Site/default/Product-Variation?pid=1835087485&amp;quantity=4\"\n                \n        >\n            4\n        </option>\n    \n        <option value=\"5\"\n                data-url=\"/on/demandware.store/Sites-eMEGA-Site/default/Product-Variation?pid=1835087485&amp;quantity=5\"\n                \n        >\n            5\n        </option>\n    \n        <option value=\"6\"\n                data-url=\"/on/demandware.store/Sites-eMEGA-Site/default/Product-Variation?pid=1835087485&amp;quantity=6\"\n                \n        >\n            6\n        </option>\n    \n        <option value=\"7\"\n                data-url=\"/on/demandware.store/Sites-eMEGA-Site/default/Product-Variation?pid=1835087485&amp;quantity=7\"\n                \n        >\n            7\n        </option>\n    \n        <option value=\"8\"\n                data-url=\"/on/demandware.store/Sites-eMEGA-Site/default/Product-Variation?pid=1835087485&amp;quantity=8\"\n                \n        >\n            8\n        </option>\n    \n        <option value=\"9\"\n                data-url=\"/on/demandware.store/Sites-eMEGA-Site/default/Product-Variation?pid=1835087485&amp;quantity=9\"\n                \n        >\n            9\n        </option>\n    \n        <option value=\"10\"\n                data-url=\"/on/demandware.store/Sites-eMEGA-Site/default/Product-Variation?pid=1835087485&amp;quantity=10\"\n                \n        >\n            10\n        </option>\n    \n</select>\n\n                \n            </div>\n\n            <div class=\"col-8 mx-auto\">\n                <!-- Prices -->\n                <div class=\"prices\">\n                    \n                    \n\n    <div class=\"price\">\n        \n        \n<span>\n    \n\n    \n\n    \n    <span class=\"sales\">\n        \n        \n        \n            <span class=\"value\" content=\"65.10\"></span>\n        \n        A$65.10\n\n\n    </span>\n</span>\n\n    </div>\n\n\n                </div>\n\n                <!-- Cart and [Optionally] Apple Pay -->\n                \n                    \n<div class=\"row cart-and-ipay\">\n    <div class=\"col-sm-12\">\n        <input type=\"hidden\" class=\"add-to-cart-url\" value=\"/on/demandware.store/Sites-eMEGA-Site/default/Cart-AddProduct\">\n        <button class=\"add-to-cart-global btn btn-primary\"\n                data-pid=\"1835087485\"\n                >\n            <i class=\"fa fa-shopping-bag\"></i>\n            \n                Add to Cart\n            \n        </button>\n    </div>\n</div>\n\n                \n            </div>\n        </div>\n    </div>\n</div>\n",
  "productUrl": "/eMEGA/1835087485.html"
}