10

いくつかのAngularディレクティブをAngular 1.5スタイルのコンポーネントにリファクタリングしています。

私のディレクティブの中には、特定の属性が存在することに依存する動作があるため、属性が特定のブール値を持つことはありません。私のディレクティブでは、link 関数を使用してこれを実現します。

link: function(scope,elem,attrs, controller){
      controller.sortable = attrs.hasOwnProperty('sortable');
    },

angular 1.5スタイルのコンポーネント構文でこれを行うにはどうすればよいですか?

私ができることの 1 つはバインディングを追加することですが、その場合はブール値を指定する必要があります。テンプレートをそのままにしておきたい。

4

3 に答える 3

3

値のない属性の存在を確認しようとしている場合は、バインディングを使用しても機能しない場合があります。値を気にしない場合は$element、コントローラーに を注入してその存在を確認するだけです。

angular
    .module('yourModule')
    .component('yourComponent', {
        templateUrl: 'your-component.component.html',
        controller: yourComponentsController
    });

function yourComponentController($element) {
    var sortable = $element[0].hasAttribute("sortable");
}
于 2016-12-02T15:29:56.950 に答える