我找到了一些这样做的好例子,但遇到了麻烦。我有一个点击功能,我想从我的指令发送一些信息到我的控制器。该函数看起来像这样 -
function selected(info){
scope.changeSelect = info;
console.log(info);
}
非常简单 - 到目前为止这个工作正常,console.log显示了我需要它显示的内容。在此之后我认为我有不正确的事情。看起来就是这样。
在我的指令的顶部,我的范围设置如此
scope: {
changeSelect: "&"
}
然后在html指令旁边调用inline我有这个
change-select="onChange(changedVal)" >
然后在我的控制器中我有
$scope.onChange = function(changedVal) {
$scope.myPick = changedVal;
console.log("hit");
};
这部分没有受到重创 - 我不确定我在这里做错了什么,可以使用第二双眼睛。谢谢!
不知道这是否有帮助,但是将相关部分排除在外并将其放入(非工作)小提琴中以使其更清晰 -
答案 0 :(得分:1)
乍一看似乎即使您使用&
绑定了该函数,您也无法在link
函数中的任何位置调用它。你可以尝试:
return {
template: '<div id="map"></div>',
restrict: 'EA',
scope: {
newInfo: "&"
},
link: function (scope, element, attrs) {
scope.newInfo(); // Call it here
function selected(info){ // Not sure what this does
scope.newInfo = info;
console.log(info);
}
}
};
作为替代方案(以防万一我误解了上述内容):this solution似乎很直观。 注意:控制器将是您的用户。