2016-01-12 23 views
12

Yeni .component() yöntemini açısal 1.5'de kullanmaya çalışıyorum. Şu anda onu nasıl kullanacağım konusunda çok az bilgi buldum. Açısal dokümanlar gerçekten de bahsetmiyorum.angularjs 1.5 bileşen/direktifine nasıl geçilir

Kapsam veya bir nesneyi, bileşenin şablon bölümünde kullanılmak üzere kapsamdan .component'e geçirmeye çalışıyorum, ancak geçirebileceğim yalnızca iki parametre $ element ve $ attrs. Nesneyi html'deki bir öznitelikten geçirmeyi denedim, ancak tek sahip olduğum nesne adının dizesiydi. Bunu ayarlama denedim

bu yollardan

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

bir değişken olarak hala hazır bilgi dizesi değil değişkenin değeri olsun her zaman temsil edilmesi. Bir değişken olarak ele alınmasını nasıl ayarlayabilirim?

Verileri yeni bağlamalarla yakalamayı denedim: {} ancak şablonum: {} o zaman değişkenlere erişemedi. şimdi olduğu gibi burada

benim bileşenidir: Burada
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 benim bileşenidir

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

Bu bileşen için açısal modül beyanıdır: angular.module('Panel', []).component('panelItemListAction', ItemListAction)

cevap

6

Şablonlar don $ kapsamına ihtiyacım var. Şablon işlevleri HTML döndürür. Denetleyiciye her zamanki gibi kapsamı enjekte edebilirsiniz. Biz bileşen direktifleri kayıt daha basit bir yol oluşturduk

module.component:

Bu angularjs blog bileşenleri hakkında söyledikleridir. Özünde, bileşenler, ilgili bir şablon ve bazı bağlamalar ile özel bir öğeye (<my-widget></my-widget> gibi) bağlı özel yönergelerdir.

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

angularjs 1.5 bileşen yöntemi hakkında daha fazla bilgi edinmek için Todd lütfen okuyun: Şimdi angularjs 1,5 .component() yöntemini kullanarak, kod çok az satır ile yeniden kullanılabilir bir bileşen oluşturabilir Slogan makalesi: http://toddmotto.com/exploring-the-angular-1-5-component-method/

- cevap için http://angularjs.blogspot.com/2015/11/angularjs-15-beta2-and-14-releases.html

+0

sayesinde, kapsam, nesne veya değişken i erişmek için herhangi bir yol yoktur şablonu nside: {} özellik? Blog, – appthat

+1

Şablonlarının $ kapsamına sahip olduğundan bahsetmez. Şablon işlevleri HTML döndürür. Denetleyiciye her zamanki gibi kapsamı enjekte edebilirsiniz. – georgeawg

+0

kapsamı izole etmek için, .component() ng-include benzer? – appthat