requirejs写组件,两个组件在同一页面使用的,但组件1使用require属性获取不到组件2的ctrl到link里面呢?
1、我使用requirejs方式编写directive,两个组件在同一页面使用的,但组件1使用require属性获取不到组件2的controller到link里面呢?
2、
组件1:
define(['app','ModuleService','ParamFactory','ProductListsFactory'],function (app) {
app.directive('headerSearch',['ModuleService','$rootScope','ParamFactory','$ionicLoading','ProductListsFactory',
function (module,$rootScope,ParamFactory,$ionicLoading,ProductListsFactory) {
return {
restrict:'AE',
scope:{tdSearch:'&',keywords:'@'},
templateUrl:'module/headerSearch/headerSearch.html',
require:'?^productItem',
link:function (scope, element, attrs,ctrl) {
console.log('---------------------------');
console.log(ctrl);
console.log('===========================');
},
controllerAs:'headerSearchCtrl'
}
}]);
});
组件2:
define(['app','ModuleService'],function (app) {
app.directive('productItem',['ModuleService',function (module) {
return {
restrict:'E',
scope:{lists:'@',module:'@'},
link:function (scope, element, attrs) {
},
templateUrl:'module/productItem/productItem.html',
controller:function ($scope) {
}
}
}]);
})
页面:
<ion-view>
<header-search keywords="{{keywords}}"></header-search>
<product-item module="{{mymodule}}"></product-item>
</ion-view>
错误:
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
其实应该是理解的问题
中 ^表示的的是
也就是说,这个符号表示搜索父级元素,而在你的应用中,两个指令元素是兄弟关系。
我发现要包含才行。
其实我想实现的是,
组件1:查询编辑框、查询按钮
组件2:查询列表
但我发现异步查询的结果想转入组件2,要不用公共变量,要不用监听,要不就广播,都不是很好耦合较强。
最好是传参给事件之类的,然后自动渲染列表。不知道能不能实现呢?