10

Angular 1.5では、コンポーネントを使用する場合、@と文字列として変換されずにブール値の属性をバインドする簡単な方法があります。Angular 1.5では、属性コンポーネントをブール値としてバインドする方法は?

たとえば、「app-menu」と「app-menuitem」の2つのコンポーネントがあります。 "app-menu"には "app-menuitem"を作成する項目のリストが1つだけあります。 JSONあるメニューアイテムで

<app-menu items="menuitems"> 

、あなたはブール値メニュー項目の名前「のisActive」により、属性を持っています。メニュー項目の構成要素で

$scope.menuitems = [{ label : 'menuitem 1', isactive : true},{ label : 'menuitem 1', isactive : false}] 

angular.module('app') 
    .component('appMenuitem', { 
     transclude: false, 
     controller: menuitemController, 
     bindings: { 
     label: '@', 
     isactive: '@' //<--- The problem is here because the boolean is converted as string 
     }, 
     templateUrl: 'angular/components/simple/menuitem/menuitem.html' 
    }); 

私は最後に必ずするための最良の方法は、実際のブール値ではなく、私にいくつかのバグを行い、文字列であるかわかりません。誰でもアイデアがありますか?

答えて

15

。これら2つの主な相違点は、<は元のデータ型のオブジェクトをコンポーネントにコンポーネントに渡すことができるということです。

isactive: '<' 
4

だけ一方向ではなく、結合文字列の結合を使用:あなたが結合片道< & @を使用することができます以降の角1.5では

angular.module('app') 
    .component('appMenuitem', { 
     transclude: false, 
     controller: menuitemController, 
     bindings: { 
     label: '@', 
     isactive: '<' 
     }, 
     templateUrl: 'angular/components/simple/menuitem/menuitem.html' 
    }); 
関連する問題