Angular,从指令向控制器发送信息

时间:2015-02-13 17:42:13

标签: javascript angularjs

我找到了一些这样做的好例子,但遇到了麻烦。我有一个点击功能,我想从我的指令发送一些信息到我的控制器。该函数看起来像这样 -

 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");
};

这部分没有受到重创 - 我不确定我在这里做错了什么,可以使用第二双眼睛。谢谢!

不知道这是否有帮助,但是将相关部分排除在外并将其放入(非工作)小提琴中以使其更清晰 -

http://jsfiddle.net/aubxhak3/1/

1 个答案:

答案 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似乎很直观。 注意:控制器将是您的用户。