1

私は node.js にかなり慣れていないので、Angular 2 への移行を容易にするために、Angular 1 ディレクティブをコンポーネントに移行することを計画しています。

だから、私の質問は、次のようないくつかの定義で動作するコードがあるということです:

'use strict';

var angular = require('angular');

angular.module('dashboard')
.directive('yepNope', require('./yep-nope.directive'))
//.component('comp', require('./myFirstComponent.component'));
.component('comp', new (require('./myFirstComponent.component')));

yep-nope.directive と MyFirstComponent.component はどちらも同じ方法で定義されます。

'use strict';

function MyFirstComponent() {

    function componentController($element){
        var vm = this;

        init();

        function init(){
            vm.api = {
                bar : function(){
                    console.log('bar called');                            
                },
                foo :  function(){
                    console.log('foo called');                            
                }
            };                        
        }

        this.$onInit = function(){
            console.log("$onInit");
        };

        this.$postLink = function(){
            console.log("$postLink");                    
        };

        this.$onChanges = function(changesObj){
            console.log("$onChanges");
        };
    }

    return {
        bindings: { },
        controller: componentController,
        //controllerAs: '$ctrl',
        template:'<div><h1>My Component header</h1></div>'
    }
}

module.exports = MyFirstComponent;

'use strict';

function YepNopeDirective() {
  return {
    restrict: 'E',
    link: function (scope, element, attrs) {
      scope.$watch(attrs.check, function (val) {
        var words = val ? 'Yep' : 'Nope';
        element.text(words);
      });
    }
  }
}

module.exports = YepNopeDirective;

コンポーネントを定義する必要がある理由はありますか?

.directive('yepNope', require('./yep-nope.directive'))
//.component('comp', require('./myFirstComponent.component'));
.component('comp', new (require('./myFirstComponent.component')));

ありがとう、

デビッド。

4

2 に答える 2

1

require はまったく必要ありません。

.directive('yepNope', YepNopeDirective);

必要な場合は、プロジェクトのアーキテクチャを確認する必要がある場合があります。

ディレクティブをコンポーネントに変換しません。

アプリケーションをコンポーネント アーキテクチャに変換します.componentが、ディレクティブはディレクティブのままです

于 2016-10-03T08:43:12.410 に答える