我需要实现两个独立组件之间的组件通信。我使用了require关键字,但它引发了一个错误。
错误:$compile:ctreq缺少必需的控制器 控制器‘锥形’,指令'ctwo‘所要求的,找不到!
这是我的密码
angular.module("app", [])
.component('cone', {
template: '<p>Component one</p>',
controller: function() {
console.log("component one loaded")
this.fone = function() {
console.log("component one function one")
}
}
})
.component('ctwo', {
template: '<p>Component two</p>',
controller: function() {
console.log("component two loaded")
},
require: {
cone: 'cone'
}
})<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.5/angular.min.js"></script>
<div ng-app="app">
<cone></cone>
<ctwo></ctwo>
</div>我做错了吗?知道吗?
发布于 2018-04-09 08:47:59
要使组件2调用组件1函数,需要使组件2成为组件1的子组件。
angular.module("app", [])
.component('cone', {
transclude: true,
template: '<p>Component one</p><ng-transclude></ng-transclude>',
controller: function() {
console.log("component one loaded")
this.fone = function() {
console.log("component one function one")
}
}
})
.component('ctwo', {
template: '<p>Component two</p>',
controller: function() {
var vm = this;
console.log("component two loaded");
this.$onInit = function () {
console.log('calling fone from ctwo! ---->');
this.cone.fone();
};
},
require: {
cone: '^^cone'
}
})<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.5/angular.min.js"></script>
<div ng-app="app">
<cone>
<ctwo></ctwo>
</cone>
</div>
发布于 2018-04-09 08:14:17
使用,require: '^cone',
angular.module("app", [])
.component('cone', {
template: '<p>Component one</p>',
controller: function() {
console.log("component one loaded")
this.fone = function() {
console.log("component one function one")
}
}
})
.component('ctwo', {
template: '<p>Component two</p>',
controller: function() {
console.log("component two loaded")
},
require: '^cone',
})<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.5/angular.min.js"></script>
<div ng-app="app">
<cone></cone>
<ctwo></ctwo>
</div>
https://stackoverflow.com/questions/49728134
复制相似问题