如何将此代码从angular1转换为angular2?

时间:2016-01-16 15:10:10

标签: angularjs angular

有, 我想在角度2中使用 ng-class =" {active:isOpen()}" , 但我不知道如何将此代码从angular1转换为angular2, 任何人帮助我? 非常感谢你。 我的代码来自http://www.theme-guys.com/materialism/angular/#/apps/todo



app.directive('menuToggle', ['$location', function($location) {
  return {
    restrict: 'A',
    transclude: true,
    replace: true,
    scope: {
      name: '@',
      icon: '@'
    },
    templateUrl: 'assets/tpl/directives/menu-toggle.html',
    link: function(scope, element, attrs) {
      icon = attrs.icon;
      if ( icon ) {
        element.children().first().prepend('<i class="' + icon + '"></i>&nbsp;');
      }

      element.children().first().on('click', function(e) {
        e.preventDefault();
        link = angular.element(e.currentTarget);

        if( link.hasClass('active') ) {
          link.removeClass('active');
        } else {
          link.addClass('active');
        }
      });

      element.find('a').ripples();

      scope.isOpen = function() {
        folder = '/' + $location.path().split('/')[1];
        return folder == attrs.path;
      };
    }
  };
}]);
&#13;
 
<li menu-link="" href="#/" class="ng-isolate-scope">
          <a ng-transclude="" ng-class="{active: isOpen()}" href="#/ui-elements/cards" class=""><span class="ng-scope">Cards</span><div class="ripple-wrapper"></div></a>
        </li>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:2)

“如何将此代码从angular1转换为angular2?”

3个简单的步骤:

1-您进入此页面:

https://angular.io/docs/ts/latest/guide/upgrade.html

2-你试着自己动手。

3-如果您有任何具体问题(问题,而不是免费工作要求),请转到http://stackoverflow.com并在那里问问。

我希望这会有所帮助。

答案 1 :(得分:0)

如果您想将ng-class="{active: isOpen()}"转换为角度2,则语法为

[ngClass]="{active: isOpen()}"

active是css类,而isOpen()应该是打字稿组件中的函数。