JSFiddle - React, Tailwind, and code Playground

by st3fan

HTML

<div ng-app="demoApp">
    <div ng-controller="demoController">
        <h2>{{heading}}</h2>
        Cart: {{currentCart.name}}
    </div>
</div>

JavaScript

(function() {

    var app = angular.module('demoApp', []);

    // Controllers
    app.controller('demoController', function($scope, Cart) {
        $scope.heading = "DemoController";
        //$scope.currentCart = Cart.build({ name: "Cart A" });
    });

    // Models
    app.factory('Cart', function() {
        
        // Constructor
        function Cart(name, lines) {
            this.name = name;
            this.lines = lines || [];
        }
        
        // Public method
        Cart.prototype.isEmpty = function () {
            return !this.lines.length;
        };
        
        // Static method
        Cart.build = function(data) {
            return new Cart(data.name, data.lines);
        };
        
        Cart.apiResponseTransformer = function (responseData) {
          if (angular.isArray(responseData)) {
            return responseData
              .map(Cart.build)
              .filter(Boolean);
          }
          return Cart.build(responseData);
        };
        
        return Cart;
    });

    // Services
    
})();