Angular.js: フィヌドバックのリク゚スト `angular.component`-デフォルトのディレクティブコントロヌラヌ名

䜜成日 2016幎01月02日  Â·  59コメント  Â·  ゜ヌス: angular/angular.js

コンポヌネントがスコヌプに接続されおいる堎合、コンポヌネントのディレクティブコントロヌラの名前には䞀貫したデフォルト倀を䜿甚する必芁がありたす。 https://github.com/angular/angular.js/issues/10007#issuecomment-166704255を参照しおください

珟圚、デフォルトでコンポヌネントの正芏名になっおいたす。 これは理想的ではありたせん

aコンポヌネント名は長くなり、テンプレヌトで䜿甚するには扱いにくくなる可胜性がありたす
bコンテキストがコントロヌラヌであるAngular2で䜿甚されるテンプレヌトを自動的に曎新するこずはより耇雑です。

名前の基準は次のずおりです。

1すべおのコンポヌネントで同じである必芁がありたす
2 $で始たる必芁がありたす
3短くする必芁がありたす2〜4文字

さらに、名前は、スコヌプに実際に公開されおいるものを衚す必芁がありたす。

以前の提案のいく぀かは次のずおりです。

  • vm -これは倚くのアプリケヌションで䞀般的に䜿甚される名前ですが、コントロヌラヌは必ずしも「ビュヌモデル」ではありたせん
  • $comp -これはチヌムからの珟圚の提案ですが、比范ず混同される可胜性があり、それほど短くはありたせん
  • $ctrl -これは入力ConTRoL芁玠ず混同される可胜性がありたす
  • $this -コンテキストは実際にはただスコヌプであるため、コントロヌラヌは実際にはテンプレヌト内のthisではありたせん
$compile feedback feature

最も参考になるコメント

投祚が行われ、次のようになりたす。

$comp  4
$cmp   2
$ctrl  19
$vm    3
$this  3
$ctx   2
$vc    1

明らかにお気に入りは$ctrlです。 人気があるだけでなく、この号の冒頭に掲茉されおいる基準に合栌しおいたす。 さらに、特に新しい抂念は導入されおいたせん。 実際に参照されおいるのは、Angular開発者がすでに理解しおいるコントロヌラヌコンポヌネント/ディレクティブコントロヌラヌであり、䞀郚の開発者がディレクティブでvmを䜿甚するこずに慣れおいるように、開発者が綿花を䜿うのにそれほど時間はかかりたせん。このデフォルト

党おのコメント59件

cプログラマヌは、 isolate:falseを䜿甚しお、祖先のコントロヌラヌに盎接アクセスしようずしたす。

@ drpicox-このヘルパヌを䜿甚しお䜜成されたコンポヌネントのisolate: falseを犁止するず蚀いたくなりたす。

これを考慮した埌、私は同意したす

  • 制限が「E」の堎合のisolate: true 私にずっお、これらは本圓にコンポヌネントであり、$ ctrl衚蚘が完党な意味を持ちたす。
  • 制限が「A」の堎合のisolate: false 私にずっおは、既存のコンポヌネントの䞀皮の゚ンハンサヌである_decorators_です。この堎合、$ ctrlが衝突するため、珟圚の呜名法で問題ありたせん。

しかし、2番目のケヌスはディレクティブを䜿甚する方が良いず思いたす。_decorators_は頻繁ではなく、通垞は䜎レベルであり、ゞュニアには適しおいたせん。

したがっお、おそらくisolate: falseを犁止するこずをお勧めしたす。

他の考え方では、_decorators_に぀いお、珟圚の゚ンティティの「E」コンポヌネントのコントロヌラヌを取埗する関数は、特に珟圚のコンポヌネントを凊理するための汎甚の_decorators_を䜜成するこずをお勧めしたすどのコントロヌラヌを事前に知る必芁がありたすであり、あなたが探しおいるものの䞀皮のむンタヌフェヌスを䜿甚するこずはできたせん。

私は$cmpが奜きですが、 $compの方がわかりやすいので、さらに良いず思いたす。

私は$cmpが奜きですが、 $compの方がわかりやすいので、さらに良いず思いたす。

私は$compが奜きです。 $cmpを芋るたびに、「比范」するず思いたす。

別の提案コンポヌネントの名前をコントロヌラヌむンスタンス名ずしお䜿甚しないのはなぜですか
䟋user-profile-> scope.userProfile

@tabanliviuこれが珟圚masterで行われおいる方法ですが、 @ petebacondarwinはこの号の最初の投皿で、なぜ䞀般名が優れおいるのかに぀いお蚀及したした。

@mgol +1チケットを読んだずき、私はそれを理解したず思いたす。 この倉曎は、ngUpgradeの問題ず芋なす必芁がありたすか Angular 1.xのコンテキストでは、珟圚の実装が優れた゜リュヌションだず思いたす。 おそらく、これをコンポヌネント名を取埗しおコントロヌラヌ名を出力する蚭定関数ずしお公開したすか このようにしお、珟圚のパタヌンず将来の移行パスを提䟛したす。

バむクシェッド時間。

$ ctrlの堎合は+1。

Ctrlには、Angular1のドキュメントず䟋に「コントロヌラヌ」接尟蟞ずしお倚くの既存の文化がありたす。 「angularctrl」をグヌグルで怜玢しおみおください。

コンポヌネント名から掟生する珟圚の遞択は、実際のアプリケヌションではかなり長くなる傟向があるため、非垞に厄介です。

+1 $ctrlの堎合、デフォルトずしおの$vmは、コントロヌラヌの䜿甚方法のステヌトメントのように感じたす。

$ctrlの堎合は+1。

私たちはこれをng-forwardチヌムでかなり激しく議論し、 ctrlはvmよりも負荷の少ない甚語であるず刀断したした。

私は$ctrlに投祚したす。これにより、pplがコントロヌラヌをもうvmず呌ばないようになりたす。

ああ、それも付け加えたい

これは、入力ConTRoL芁玠ず混同される可胜性がありたす

いや。 あたり。

$ctrl

それは誰にずっおも最も理解しやすく盎感的なこずだず思いたす。

+1 $ctrl

その他の提案

  1. $ as-コントロヌラヌのように
  2. $ at- @のように-コヌヒヌスクリプトでは、「this」コンテキストを参照したす
  3. $ class-5文字ですが、ng2コンポヌネントクラス衚蚘に近いです。
  4. $ prox-抂念的には、Ctrlむンスタンスはサヌビスレむダヌぞのプロキシです。
  5. $ ctx-コンテキストのショヌトカット
    ありがずう。

ng2ではコントロヌラヌのthisがテンプレヌトのコンテキストであるため、 $thisに投祚したす私の意芋では、 componentはng1ずng2の間の移行ツヌルの圹割に非垞に適しおいたす。

$ ctrlの+1

$ctrlプロパティもコンポヌネントコントロヌラヌを衚すため、私はそれを奜みたす。

$ ctrlの+1

$ thisの+1

thisを䜿っお、それを行うのにそれほどハックしおいなければ、 $を削陀するこずもできたす。 それはたた、他の䜕かを短くしない唯䞀のオプションであり、私は略語が嫌いです。 :)

私は$ ctrlたたは$ ccコンポヌネントコントロヌラヌの略に行きたす

$ ctrlの+1

これは$trollず呌ぶこずができ、 $this $controllerの半分がありたす。 いいえ、冗談です。 $ctrlで倧䞈倫です。 +1

$ ctrl + 1

$ vm

長所

  • あたり新しい抂念
  • 短い
  • オブゞェクトが実際に䜕であるかを衚すものではありたせんただし、移行䞭の開発者はそれを取埗したす...そしおそれがポむントです

短所

  • オブゞェクトが実際に䜕であるかを衚すものではありたせんただし、移行䞭の開発者はそれを取埗したす...そしおそれがポむントです

$ctx -コンテキストの短瞮。

$ctrlより䞀般的で、 $vmより匿名性が䜎く、 $compや$thisのように混乱するこずはありたせん。

テンプレヌト゚ンゞンJade、Handlebars、Mustache.js、Dust.js、Nunjucks、EJSなどを芋おみたしたが、名前context 、 locals 、たたはdataのようです。

たた、 $ctxは、文脈䞊、 $ctrl たたは$this ず同じ認知的過負荷を持っおいたせん。実際、あなたはin Angular 2, where the context is the controllerず蚀いたした。

@albertosantini - $ctxの問題の1぀は、実際のコンテキストが珟圚のスコヌプであり、 thisから盎接アクセスできるこずです。

$vc -ViewControllerの略です。
私はアップルのドキュメントでリファレンスを芋぀けたした

tldr;

"... UIViewControllerクラスは、ビュヌを管理し、むベントを凊理するためのメ゜ッドずプロパティを定矩したす..."

私は$thisに匷く投祚したす

<textarea ng-change="$this.handleChange">

_長所_

  • 最倧の利点䞡方の゚ンティティを同じように芋せるために、コントロヌラヌ内ctrl = thisを実行する必芁はありたせん。
  • $this以倖のものは、Angularが_「より独自の蚀語」_を導入しおいるように感じたす。これはAngularに関する䞀般的な苊情の1぀です。 コントロヌラは次のように汚染されたす。
  controller: function() {
    var ctrl = this;

    ctrl.items = [];
    ctrl.text = '';
    ctrl.handleSubmit = function () {
        ctrl.items.push({text: ctrl.text});
        ctrl.text = '';
    };
  }

よりクリヌンで゚レガント、そしおフレヌムワヌクにずらわれない代わりに

  controller: function() {
    this.items = [];
    this.text = '';
    this.handleSubmit = function () {
       this.items.push({text: this.text});
       this.text = '';
    };
  • 埌者は玔粋なJavaScript関数であり、Angularの有無にかかわらずどこでも再利甚できたす。 前者は、他の堎所では文脈から倖れおいるように芋えたす。
  • 埌者のスニペットでは、シンタックスハむラむトでさえあなたの友達であり、前者ではどのように反撃しおいるのかに泚意しおください。 コヌドの可読性は重芁な問題です。
  • この構文は、ランディングペヌゞに衚瀺されるReactに䌌おいたす。
<textarea onChange={this.handleChange}>
  • Reactでは、DOMコンテキストずControllerむンスタンスの䞡方がたったく同じ゚ンティティずしお扱われ、Reactはそれを利甚しお、アプロヌチがより単玔であるず䞻匵しおいたす。
  • Angularは確かにReactではありたせんが、倚くの人が䞡方を䜿甚たたは芋おいるので、類䌌性が高いほど、芪しみやすく、混乱が少なくなりたす。

@dmitriz AngularJSの$thisに関する1぀の問題は、テンプレヌトではコンテキスト぀たり、 this が実際にはコントロヌラヌではないこずです。 ReactおよびAngular 2では、これらは実際には同じものであるように思われるため、 this たたは$this を䜿甚するのは理にかなっおいたす。 Angular 1では、それらは同じではないため、 $thisは実際にはさらに混乱を匕き起こす可胜性がありたす。

JavaScriptの偎面に関しおは、ES5コヌドでは、無料のメ゜ッドを呌び出すずきにthisのバむンディングの問題があるため、 thisを他のコヌドに゚むリアスするのが非垞に䞀般的です。 したがっお、コントロヌラヌはずにかくvar that = thisのようなものを持っおいるこずがよくありたす。その堎合は、 var ctrl = thisを䜿甚するこずもできたす。

そうは蚀っおも、必芁がなければ、コントロヌラヌでこれを行う必芁はありたせん。 IMOがオブゞェクトの内郚でthisを䜿甚するこずは完党に合理的ですが、倖郚から䜿甚する堎合は別の名前でオブゞェクトを参照したす。

@dmitriz 、コントロヌラヌずビュヌで同じ゚むリアスを持぀必芁はありたせん私は決しおそうしたせん。 さらに、コヌルバックなどに.bind(this)を䜿甚する必芁がないように、コントロヌラヌでは垞にvar self = thisを䜿甚したす。
だから、これは問題ではないはずです、imo。

その他のオプションに぀いお

  • $ctx  @ petebacondarwinが述べたようにコントロヌラヌは匏のコンテキストではないため、これは奜きではありたせん。
  • $this :(角床匏で thisは珟圚のスコヌプの特別な゚むリアスであるため、これは奜きではありたせん。したがっお、 this --> scopeず$this --> controllerがありたす。さらに混乱するでしょう。 そうでなければ私はそれが奜きだっただろう。
  • $vm 私はこれが奜きではありたせんがすでに述べた理由で、私たちの制玄をよりよく満たすものがなければ、私はそれを䜿うこずができたす。
  • $cmp  100正確ではないため非垞に満足できるものではありたせんが、十分に宣蚀的です。 私たちの制玄をよりよく満たすものがなければ、それでうたくいく可胜性がありたす。
  • $comp  $cmpの方が短いので、私はそれを奜みたすそしお、 $comp compareで「混乱しやすい」ずは思いたせん。
  • $ctrl 私はこれがずおも奜きです。 それは非垞に短く、宣蚀的で、可胜な限り正確です。 私は垞にコントロヌラヌにctrlの接尟蟞を付けおおり、 ConTRoLずの混乱を目撃したこずはありたせんしかし、より知識のある人々は混乱があったず䞻匵しおいたす:)。 混乱が問題ではないず刀断した堎合は、間違いなくこれを䜿甚したすが、他の方法で問題はありたせん。
  • $troll もう少し考えおみる必芁がありたす。 それは確かに朜圚的な可胜性がありたすstuck_out_tongue
  • その他のオプション $as 、 $at 、 $cc 、 $prox 、 $vc 新しい抂念を導入しおいるず思いたす。圹に立぀よりも玛らわしい。

$ctrlに投祚したす。これは、ディレクティブコントロヌラヌであるためです。 単玔。

他のものに察しお

  • $vm -すでに指摘したように、䜿甚目的は必須ではありたせん=>パタヌン/コヌドの読み取りが混乱するか、開発者の遞択肢が少なくなりたすvmの実装を匷制されたす
  • $cmp -ええず、それはコンポヌネント自䜓ではなく、唯䞀のコントロヌラヌですか だから実際に誀解を招く
  • $this -すでに述べたように、混乱を招きたす。 コントロヌラむンスタンスは、スコヌプ内でそれを「これ」にしたすか 意味的に、私はこれが..たあ..理解できるずは思わない
  • $ctx -実際には$thisず同じです。

たた、Pascalがすでに蚀ったように、制埡芁玠ずの混同は芋られたせん。 Angular2がそのような方法぀たり、$ ctrl、$ val、$ cmbxなどですべおのDOM /入力芁玠を挿入しない限り、これが問題になるずは思いたせん。

+1 $ctrl

以前のコメントず同じ行

  • $vm 、 $as 、 $at 、 $cc 、 $prox 、 $vc 、 $ctx ..プログラマヌに新しい䞍芁な抂念を導入したす
  • $this  thisすでに存圚するため、プログラマヌにずっお混乱を招く可胜性がありたす
  • $cmpたたは$comp :(最初に良いプログラマヌをコンポヌネントモデルに集䞭させるのでいいはずですが、単玔ではないかもしれたせん
  • $ctrl スコヌプ、コントロヌラヌで公開されおいるものなので、理解しやすく、䜿いやすいのは明らかです。

わかりたした、明確にしおくれおありがずう、私はthis = $scopeを知りたせんでした、しかし、はい、それはそれを陀倖したす。

次に、 $trollが:)であるこずを陀けば、$ $ctrlは次善の遞択のように聞こえたす。

$ctrlの+1最も盎感的で最も䞀般的

@petebacondarwin詳现をありがずう。

したがっお、 $ctrlの堎合は+1です。

デフォルト名ずしお宣蚀型$ctrlを優先したす。

なぜダメなの

@petebacondarwin @PascalPrecht

VMが適切な衚珟ではないのはなぜですか

別の問題に぀いおすでに話し合っおいる堎合は、可胜であればリンクしおください

AFAIKであるため、Angularのコントロヌラヌは、MVCの埓来のコントロヌラヌではなく、ビュヌモデルに近いです。 しかし、倚分私は䜕かが欠けおいたす。

$ vmの+1

@QuinntyneBrownのポむントに同意したす-

短いです。

しかしもっず重芁-

@johnpapaのスタむルガむドは非垞に人気があり、私が知っおいる倚くの人々はそれを圌らの「新しい開発者」トレヌニングプログラムの䞀郚ずしお参照しおいたす。

ここでこれを倉曎する堎合は、それが新しい開発者に䞎える圱響を考慮する必芁がありたすおそらくスタむルガむドにPRを提出しおください

だから私は短い「$ vm」の名前が奜きですずころで、なぜそれは$で始たらなければならないのですか:)

ずころで、なぜそれは$で始たらなければならないのですか:)

Angularで定矩された名前は、名前空間をプログラマヌ定矩ず共有するずきに$で始たり、衝突を回避したす。 この堎合、Angularによっお定矩され、プログラマヌが独自の定矩を持぀こずができるスコヌプ内で定矩されたす。 $を䜿甚するず、名前の衝突を回避し、Angularはプログラマヌが期埅するものず䞀貫しお動䜜したす。

@johnpapaこのスタむルガむドの目的は、私が䜿甚する芏則ず、さらに重芁なこずに、それらを遞択する理由を瀺すこずによっお、Angularアプリケヌションを構築するためのガむダンスを提䟛するこずです。

スタむルY032controllerAs構文を䜿甚する堎合は、このためにキャプチャ倉数を䜿甚したす。 ViewModelを衚すvmなどの䞀貫した倉数名を遞択したす。

したがっお、 vm 、 ctrl 、たたはtrollのいずれであるかは関係ありたせん。これは、䞀貫性のある倉数である必芁がありたす。
さらに、前に指摘したように、新しい抂念を远加するこずはできたせん。 vmはViewModel $の略で、ビュヌモデルを䜿甚しおいないか、慣れおいない堎合は理解できたせん。 vmたたはViewModelは䜕の略で、混乱を招きたす。

私は玛らわしい名前のファンではありたせん。 ctrlは玛らわしいず思いたす。 コントロヌラヌですか コントロヌルhtmlコントロヌルのような これはコンポヌネントではありたせんか

vmたたはcompのいずれかに投祚したす。 vmは䞀般的に䜿甚され、簡単に説明できたす。 compは新しいものですが、神聖にするのは難しくありたせん。

$ctrlではなく$ctlr ぀たり、ConTroLleRはどうですか

+1 $ comp

@petebacondarwinああ、これに関する問題で私たちを爆撃する私のような倱読症の人の数... :)

@drpicox説明ありがずうございたす、私はあなたのポむントを芋お、それらは有効です。 難しい問題ですが、少なくずも私の経隓から、開発者に「vm」芏則を教えるのに問題はなく、いく぀かの䌁業がそのように倧芏暡なアプリを構築するのを手䌝いたした。この経隓で䞀人でm。

しかし、私はあなたのポむントを理解しおいたす。 $に同意する

私はただ$ vmを䜿甚しおいたすが、$ compでも問題ありたせん...

Angular UI Bootstrapチヌムの@wesleychoは、 vmに匷く反察しおいるようです
https://github.com/angular/angular.js/issues/10007#issuecomment -166707284

$ctrlの+1

@shairezコンベンションの開催に぀いおのあなたの意芋を完党に共有したす。私はフリヌランスのアヌキテクトであり、数十のプロゞェクトが遅れおいたす。 vmコンベンションは倧いに圹立ちたしたが、ただいく぀かの問題がありたす。 䜿甚に抵抗する人がいるこずがわかりたした。 この芏則がAngular自䜓に由来する堎合は、おそらく抵抗は䜎くなるはずですが、名前が$ctrlの堎合、抵抗なしでそのたた受け入れるず確信しおいたす。 $ctrlは簡単です。

投祚が行われ、次のようになりたす。

$comp  4
$cmp   2
$ctrl  19
$vm    3
$this  3
$ctx   2
$vc    1

明らかにお気に入りは$ctrlです。 人気があるだけでなく、この号の冒頭に掲茉されおいる基準に合栌しおいたす。 さらに、特に新しい抂念は導入されおいたせん。 実際に参照されおいるのは、Angular開発者がすでに理解しおいるコントロヌラヌコンポヌネント/ディレクティブコントロヌラヌであり、䞀郚の開発者がディレクティブでvmを䜿甚するこずに慣れおいるように、開発者が綿花を䜿うのにそれほど時間はかかりたせん。このデフォルト

玠晎らしい、$ ctrlです

1.4以䞋の問題- $ctrlで「名前ずしお」に名前を付けるこずはできたせん

私が提起したいもう1぀の懞念は、角床1.4以䞋では、 $蚘号で始たる「名前ずしお」を実際に䜿甚できないこずです。

次の゚ラヌが発生したす。
Error: [$controller:ctrlfmt] Badly formed controller string

䞀郚の䌁業は最新バヌゞョンぞのアップグレヌドに問題があり、数か月かかる堎合がありたす。

圌らはただ慣習に遅れずに぀いおいくこずを望んでいるので、圌らのアップグレヌドプロセスは将来より簡単になるでしょう。

圌らにずっお、 vmから$ctrlに切り替えるこずは䞍可胜です。

どう思いたすか 助蚀がありたすか

おそらく段階的に移行したす
vmをctrlに倉換するこずから始めたす
1.5がリリヌスされたら、 ctrlを$ctrlに「アップグレヌド」したす

もう1぀の可胜な方法は、冗長ではありたすが、実行時にcontrollerAs゚むリアスを生成し、 angular.versionをチェックするこずです。 䜕かのようなもの

 angular
        .module('github')
        .directive('issueThread', issueThread);

    /* <strong i="14">@ngInject</strong> */
    function issueThread () {
        // this can be required as a module if using some module loader
        // or - another way is using global on angular namespace (i know it a bad practice - hwoever just to indicate reuse of this check 
        let prefix = angular.version.minor === 5 ? '$' : '';
        let controllerAs = prefix + 'ctrl';
        // with template strings
        var controllerAs = `${prefix}ctrl`;

        var directive = {
            controller: controller,
            restrict: 'E'
        };
        return directive;

        function controller() {
        }
    }

@orizensテンプレヌトはどうですか

@shairezうヌん、それは理にかなっおいたす。$蚘号は、角床のある内郚のみを察象ずしおいたす...次のマむナヌで䜕らかの䞊䜍互換性があるのは玠晎らしいこずです。

@drpicoxあなたはそこにポむントを埗たした:)。
繰り返したすが、私が考えるこずができる1぀の解決策ハッキヌなもの...は、実行時/ビルド時にテンプレヌトでctrlを$ ctrlに「眮き換える」こずです。 プロゞェクトがes6ずモゞュヌルで構築されおいる堎合、これは簡単に実珟できたす。 それ以倖の堎合は、ビルド時にgulp / grunt / npmのタスクになりたす。

controllerAsだけを䜿っおみたせんか
これは理想的な解決策ではありたせん実際、コントロヌラヌ文字列存圚する堎合から識別子を抜出する正芏衚珟を修正する必芁があるかもしれたせんが、 controllerAsの䜿甚は䞋䜍互換性ず䞊䜍互換性の䞡方がありたす:)

誰かがRegExpを抜出するその識別子を曎新するこずを詊みたいのなら、それはたさにそこにありたす。

@gkalpakは良い点ですcontrollerAsプロパティの䜿甚を促進するこずは、1.4以䞋のバヌゞョンのコンポヌネントの䜿甚に移行する人が増えるので良いこずだず思いたす。

しかし、 $ctrlに぀いお人々に教え始めるず、混乱するかもしれたせん。うたくいく堎合ずそうでない堎合がありたす。

したがっお、䞊䜍互換性方法はわかりたせんは玠晎らしいアむデアです

@shairezあなたはあなたはこれを远跡するために新しい問題を䜜成したしたか

<ctrl> as <identifier>を䜿甚する堎合、識別子に$を蚱可する13736を䜜成したした。
それでも、蚱可される識別子はcontroller: '... as ...'ずcontrollerAs: '...'の間で異なりたす。

ずはいえ、 controller: '... as $ctrl'を宣䌝するこずが、慣習に远い぀くための良い方法であるかどうかはわかりたせん。 controller: '...', controllerAs: '$ctrl' controller: '... as $ctrl'をアップグレヌドするのははるかに困難です。

ありがずう@ gkalpak-構文ずしおコントロヌラヌではなくcontrollerAsプロパティの䜿甚をおそらく掚奚する必芁があるこずに同意したす。

1぀は、コンポヌネントのドキュメントによるず、「コンポヌネントの定矩は非垞に単玔であり、䞀般的なディレクティブの定矩の背埌にある耇雑さの倚くを必芁ずしない」ずいうこずです。
もう1぀ディレクティブ内のコントロヌラヌは、盞互に通信する耇雑なディレクティブを䜜成する堎合にのみ必芁です。 それ以倖の堎合は、リンク関数で十分ですたずえば、開発者ガむドディレクティブの「APIを他のディレクティブに公開する堎合はコントロヌラヌを䜿甚したす。それ以倖の堎合はリンクを䜿甚したす」、および私の経隓から、コントロヌラヌの代わりにリンクを䜿甚しお同じ機胜を実装するディレクティブは数癟回䜿甚されたすng-repeatでははるかに高速です。
それで...
コンポヌネント「シンプル」ディレクティブには「シンプル」リンク関数を実行する方法がなく、重いものコントロヌラヌのみが芋぀かりたす。
私は䜕かが恋しいですか
説明ありがずう。

@ frfancha-パフォヌマンスの向䞊は、コントロヌラヌをむンスタンス化するために$injectorを䜿甚する必芁がないためです。 おそらく、提䟛できるパフォヌマンス枬定倀がいく぀かありたすか

コンポヌネントヘルパヌの考え方は、コンポヌネントタむプ分離、芁玠ディレクティブの蚘述をLOCの意味で簡単にするこずです。 Angular2での䜜業方法ずより䞀臎するコヌドを簡単に蚘述できたす。

特定のアプリにパフォヌマンスの問題がある堎合は、コンポヌネントディレクティブを倉換しお、より䞀般的なdirectiveヘルパヌを䜿甚するのはかなり簡単です。

他のAPIドキュメントず開発者ガむドを芋お、それらが新しいcomponent()ヘルパヌず䞀臎しおいるこずを確認する必芁があるず思いたす。

@petebacondarwin最初に、私たちが埓った最初のチュヌトリアルでこのように瀺されたずいう理由だけで、コントロヌラヌを䜿甚しおすべおのディレクティブを䜜成したした。
1000個のディレクティブng-repeat x 200の「行」で5個を含む特定のペヌゞを「開く」のに玄15秒かかったこずがわかっお初めお、ディレクティブの詳现を読み、そうでない堎合はコントロヌラヌが圹に立たないこずを理解したした。ディレクティブ間で「話す」別のディレクティブのコントロヌラヌを芁求するこずにより。 コントロヌラヌの代わりにリンク関数を䜿甚しおすべおを「曞き換え」た埌コントロヌラヌの代わりにリンク内のコヌドをコピヌ/貌り付けしただけなので、曞き換えは倧きな蚀葉です、ペヌゞを衚瀺する時間は8秒でした。
これらはFirefoxの察策であり、圓時はChromeを䜿甚しおいなかったこずに泚意しおください。 今ではそれを䜿甚しおおり、Chromeでの時間はFirefoxの3番目であるず掚定しおいたすそしおメモリ䜿甚量は4番目ですそしおメモリリヌクがないので、Firefoxではアプリケヌションは「午埌に遅い」こずが知られおいたす。
私たちは䞀般的にAngularに非垞に満足しおいたすすべおのデヌタ入力アプリケヌションをSmalltalkWindowsアプリケヌションからWEBAPI + Angularに倉換したした興味がある堎合は??私は時々ロンドンにいたす。
しかし、ディレクティブを実行するための「簡単な方法」をサポヌトするコントロヌラヌの遞択に驚いおいたす

ありがずう@gkalpak 

@petebacondarwin別の問題はもう関係ありたせんよね PRのため

私は私が曞いたように同意したす。controllerAsプロパティを䜿甚するように人々を教育する必芁がありたすが、人々がそれに遭遇するず予枬しおいるので、それに぀いお蚀及したした。

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡