2016-01-12 6 views
12

角度1.5で新しい.component()メソッドを使用しようとしています。現在、私はそれを使用する方法についての情報はほとんど見つかりませんでした。角度のある文書は、実際には言及しません。

スコープまたはスコープのオブジェクトをコンポーネントのテンプレート部分で使用する.componentに渡そうとしていますが、渡すことができるパラメータは$ elementと$ attrsです。私はhtmlの属性を介してオブジェクトを渡そうとしましたが、オブジェクトの名前の文字列しかありませんでした。

私は

my-attr="item.myVal" 
my-attr="{item.myVal}" 
my-attr="{{item.myVal}}" 

これらの方法で変数として表現されるように、私はまだ文字列リテラルではなく、変数の値を取得するたびにそれを設定しようとしています。どのように変数として扱うように設定できますか?

新しいバインディングを使用してデータをキャプチャしようとしましたが、{{}がテンプレートにアクセスできませんでした。ここで

は、それが今のように私のコンポーネントです:angular.module('Panel', []).component('panelItemListAction', ItemListAction)

答えて

6

テンプレートドン:ここ

export var ItemListAction = { 
    controller: 'PanelCtrl as itemCtrl', 
    isolate: false, 
    template: ($element: any, $attrs: any): any=> { 
     var myVal: any = $attrs.myAttr; // returns "item.myVal" 
     var listAction: string = compileListAction(); 
     return listAction; 
    } 
}; 

はHTML

<panel-item-list-action my-attr="item.myVal"></panel-item-list-action> 

の私のコンポーネントであるこれは、コンポーネントの角度モジュール宣言であります$スコープが必要です。テンプレート関数はHTMLを返します。いつものように$ scopeをコントローラに注入することができます。私たちは、コンポーネントのディレクティブを登録するより単純な方法を作成している

module.component

これはAngularJSブログは、コンポーネントについて言っていることです。本質的に、コンポーネントは特別な種類のディレクティブであり、カスタム要素(<my-widget></my-widget>のようなもの)にバインドされ、関連するテンプレートといくつかのバインディングがあります。

var myApp = angular.module("MyApplication", []) 
myApp.component("my-widget", { 
    templateUrl: "my-widget.html", 
    controller: "MyWidgetController", 
    bindings: { 
    title: "=" 
    } 
}); 

AngularJS 1.5コンポーネント方法の詳細についてはトッドをお読みください:さて、AngularJS 1.5に.component()メソッドを使用することによって、あなたは、コードの非常に数行で再利用可能なコンポーネントを作成することができますモットーの記事: http://toddmotto.com/exploring-the-angular-1-5-component-method/

- 応答のためのhttp://angularjs.blogspot.com/2015/11/angularjs-15-beta2-and-14-releases.html

+0

おかげで、スコープ、オブジェクト、または変数iにアクセスするには、どのような方法がありますテンプレート:{}プロパティの横にありますか?ブログではそのことについて言及していません – appthat

+1

テンプレートは$ scopeを必要としません。テンプレート関数はHTMLを返します。いつものように$ scopeをコントローラに注入することができます。 – georgeawg

+0

スコープを分離することの範囲外では、.component()はng-includeに似ていますか? – appthat

関連する問題