我有一个在指令html中调用的函数。我想将该对象传递给控制器。我怎么做?以下是我到目前为止的副本
wpGroup.html
<button ng-click="hideGroup(item.id)">-</button>
WP-group.js
scope:{hideGroup: &} //nothing else related to hideGroup or item.id
WP-view.html
<data-wp-group data-item="childItem" data-hide-group="vm.hideGroup(vm.id)"/>
答案 0 :(得分:0)
functions
是第一类,它们可以作为参数传递到任何你想要的地方。
如果我理解正确,你想将hideGroup
函数传递给另一个控制器并调用它。
您可以在两者之间共享引用,一些事件使用自定义服务处理(或更好)。
.service('ShareDataService', function(){
var data;
this.setFn = function(fn){
data = fn;
}
this.getFn = function(){
return data;
}
})
然后在你的指令中注入服务并设置数据。
ShareDataService.setFn(scope.hideGroup);
并在您的控制器中获取参考;
var hideGroupFn = ShareDataService.getFn();
答案 1 :(得分:0)
我正在回答这个问题,希望data-wp-group
是你的指示。
这些应该被修改,
<强> WP-group.js 强>
scope:{dataHideGroup: &} //nothing else related to hideGroup or item.id
在up-group.js里面,
scope.hideGroup = function(id){
scope.dataHideGroup({"id":id});
}
<强> WP-view.html 强>
<data-wp-group data-item="childItem" data-hide-group="vm.hideGroup(id)"/>
希望你理解我说的话