Angular 1.x ES6

0

Przerabiam aplikacje w angularze 1.5 na ES6 (na 2 nie zdecydowaliśmy sie), problem pojawił się przy dyrektywach i podpinaniu ich w htmlu, prosze o rady, poniżej kod i błąd:

bundle.js:20493TypeError: this.$interval is not a function
    at snapTest.link (http://localhost:8080/js/bundle.js:42678:13)
    at http://localhost:8080/js/bundle.js:8117:19
    at invokeLinkFn (http://localhost:8080/js/bundle.js:16608:10)
    at nodeLinkFn (http://localhost:8080/js/bundle.js:16007:12)
    at compositeLinkFn (http://localhost:8080/js/bundle.js:15310:14)
    at publicLinkFn (http://localhost:8080/js/bundle.js:15190:31)
    at Object.<anonymous> (http://localhost:8080/js/bundle.js:41701:19)
    at http://localhost:8080/js/bundle.js:8117:19
    at invokeLinkFn (http://localhost:8080/js/bundle.js:16608:10)
    at nodeLinkFn (http://localhost:8080/js/bundle.js:16007:12) <svg style="width:400px;height:400px" snap-test="">

/components/index.js:

import uirouter from 'angular-ui-router';
import ngResource from 'angular-resource';
import routing from './home.routes.js';
import HomeController from './../../controllers/home.controller.js';
import snapTest from './../directives/snapTest.directive.js'

export default angular.module('app.home', [uirouter, ngResource])
  .config(routing)
  .directive('snapTest', () => new snapTest())
  .controller('HomeController', HomeController)
  .name;

snapTest.directive.js:

export default class snapTest {
  constructor($interval) {
    this.restrict = 'A';
    this.$interval = $interval;
    }

  link(scope, element) {
    this.$interval(() => this.paint(element), 100);
  }

  paint(element) {
    var s = Snap(element[0]);
    console.log(s);
    var bigCircle = s.circle(150, 150, 100);
    bigCircle.attr({
        fill: "#bada55",
        stroke: "#000",
        strokeWidth: 5
    });
    var smallCircle = s.circle(100, 150, 70);
  }

}

html:
<svg style="width:400px;height:400px" snap-test></svg>

0
  1. Po co to robicie
  2. Jak ten interval ma tu trafic constructor($interval)? możlie zę będziecie potrzbować funkcji fabrykującyhc które skowają klasy
0
Szczery napisał(a):
  1. Po co to robicie
  2. Jak ten interval ma tu trafic constructor($interval)? możlie zę będziecie potrzbować funkcji fabrykującyhc które skowają klasy

Żeby ES6 sie poduczyc, chodz moim zdaniem angular 2 moglby byc. Mozesz dac jakis przyklad?

0

Angular 2 jeszcze nie nadaje sie do produkcji w ostatnim miesiacu wyszlo okolo 7 nowych release w tym API znacznie sie zmienilo w niektorych modulach takze poki co bym tego nie uzywal mamy ju rc 1 wiec a niedlugo bedzie jakis milestone lub stabilna wersja sam zrobilem jakas tam przykladowa aplikace na beta-15 https://github.com/marcio199226/aws-todo-angular2 po 2 tygodniach bylo juz rc-0 takze wiesz :)

Ogolnie ja w angularjs pisze juz prawie rok i mam duzo projektow juz za soba tych mobilnych (ios,android,wp8/wp10) jak i aplikacje strict firmowe + cos dla publicznosci.

Powiem ci tak sam probowalem pisac aplikacje w typescript + angular 1.4.x i wiecej z tym zachodu niz porzytecznosci tazke polecam poczeac az wyjdzie stabilny angular 2 i tam juz pisac w es6 / typescript.

1 użytkowników online, w tym zalogowanych: 0, gości: 1