我尝试以一种将数据传播到嵌套组件的方式在AngularJs 1.5
中组合组件(我是Angular的新手)。我的第一个目的是使用服务注入(这将限制组件每个应用程序只有一个服务类型)。所以我们提出了嵌套组件的想法。让我告诉你意图(Plunker)
<fetcher>
<consumer items="$ctrl.items">
</fetcher>
据我了解,我们需要使用transclusion和相应的项目绑定来实现:
angular.module('plunker', [])
.component('fetcher', {
template: `<nav ng-transclude></nav>` ,
transclude: true,
controller: function(){
this.items = [
{name: 'One'},
{name: 'Two'}
];
}
})
.component('consumer', {
template: `{{$ctrl.items | json}}`
, bindings: { items: '<' }
});
遗憾的是,这些值似乎在consumer
的控制器中不可用。我已经尝试使用$scope
但它似乎没有成功。
请注意,重要的是我们不需要耦合具体组件(即使用require属性)。
我是否遵循完全错误的方法? Thx提前。