Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

angular-container

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

angular-container

[![NPM version](https://img.shields.io/npm/v/angular-container.svg)](https://www.npmjs.org/package/angular-container) ![](https://img.shields.io/npm/dm/angular-container.svg) ![](https://img.shields.io/github/last-commit/opteo/angular-container.svg) # Ang

  • 0.1.4
  • latest
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

NPM version

Angular Container

Here at Opteo, we recently undertook the process of updating our large, Angular.js-based, front-end application (composed of many controllers, services and directives) to Vue. Migrating our entire application was expected to take several weeks (which later became months), so we built the angular-container Vue component as a simple way to use our existing Angular pages within our new Vue-based app.

Features

  • Use existing Angular based controllers/services/directives within .vue components
  • Allows for an easier migration process to Vue when working with a large existing Angular codebase
  • Can be lazily loaded for only pages which require Angular

Notes:

By default, non curly braces are used for rendering angular-container $scope variables, and instead square brackets are used (this can be overwritten). The default is due to Vue using curly braces for data binding, which causes mounting issues and conflicts.

Installation

An installation of Angular.js is required for this component to work correctly. Install via yarn or npm:

yarn add angular angular-container

Example

<template>
  <AngularContainer ref="ng" name="user" ctrl="userCtrl">
    <div ng-for="item in items">
      <span ng-click="addItem()">[[ item ]]</span>
      
      <!-- Existing custom Angular directives can be used -->
      <blue>This users the "blue" directive</blue>
      
      <!-- Vue variables can be used within the Angular instance -->
      <span>{{ hello }}</span>
    </div>
  </AngularContainer>
</template>
<script>
import AngularContainer from "angular-container"

export default {
  name: "User",
  data() {
    return {
      hello: "world",
    }
  },
  mounted() {
    const angularContainer = this.$refs.ng
    angularContainer.init() // Instantiate the Angular.js instance after Vue has mounted
    const angularInstance = angularContainer.getInstance()
    
    /* Use controllers, services and directives that you need */
    angularInstance.service("userService", ["$injector", ($injector)  => {
      return {
        getSomeData() {
          return fetch("https://example.com/api/")
        }
      }
    }])
    
    // Controller    
    angularInstance.controller("userCtrl", ["$scope", "userService", ($scope, userService) => {
      $scope.items = [1, 2, 3, 4, 5]
      $scope.addItem = () => $scope.items.push(Math.random())
      const data = await userService.getSomeData()
    }])
    
    // Directive
    angularInstance.directive("blue", () => {
      return {
        restrict: "E",
        transclude: true,
        template: `<span style="color:blue;" ng-transclude></span>`
      }
    })
  },
  components: {
    AngularContainer,
  }
}
</script>

Keywords

FAQs

Package last updated on 04 Sep 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc