【发布时间】:2019-01-06 22:20:59
【问题描述】:
在不使用服务的情况下,我无法在 angularJS 中链接两个兄弟组件。我看到了例子,但我不能让它们工作。这就是我所拥有的。我失败了什么?谢谢!
cluster.js
<div class="row">
<filter-component></filter-component>
<result-component filters="$ctrl.filters"></result-component>
</div>
filter.component.js
'use strict';
angular
.module('filter' , ['ui.bootstrap'])
.component('filterComponent', {
bindings: {},
templateUrl : 'app/filter/filter.html',
controller : filterCtrl
})
function filterCtrl($scope){
this.filters = 'FILTRO' // <-- I give it a value
}
results.component.js
(function(){
'use strict';
angular
.module('result')
.component('resultComponent', {
bindings: {
filters :'<' // <-- inject
},
templateUrl : 'app/result/result.html',
controller : resultCtrl
})
function resultCtrl($scope) {}
结果.html
<h1>{{$ctrl.filters}}</h1> //<-- nothing is shown :(
【问题讨论】:
-
您在
$ctrl.filters之外传递<filter-component></filter-component>,因此您的变量将不存在。如果只想从组件传递值,则需要创建parent和child类型的组件。其他使用服务或events -
看看stackoverflow.com/questions/50390843/…。也可以随意投票;)
-
AngularJS 团队在 V1.5 中引入了组件,以便更轻松地过渡到 Angular 2+。注入和使用 $scope 会破坏这个目的,因为 Angular 2+ 没有 $scope。
标签: angularjs data-binding binding angularjs-components