首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >angularjs:指令中的多个绑定函数

angularjs:指令中的多个绑定函数
EN

Stack Overflow用户
提问于 2015-06-22 09:46:33
回答 1查看 58关注 0票数 0

我的指令中有一个函数,它绑定到控制器中的一个函数,如下所示:

HTML:

代码语言:javascript
复制
<div graph-visualization data="graphdata" type="graphtype" data-method="watchMonth" timespan="timespan" id="graph" ng-if="!loading">
</div>

指令:

代码语言:javascript
复制
app.directive('graphVisualization', function() {
    return {
        restrict: 'A',
        scope: {
          data: '=',
          type: '=',
          timespan: '=',
          monthFilter: '&method'
        },
        link: function(scope, element, attrs) {
            scope.updateMonth = function() {
                var func = scope.monthFilter();
                func(scope.month)
            }

            scope.$watchGroup(['data', 'timespan', 'type'], function(newval, oldval) {
                 scope.month = 'something'
                 scope.updateMonth()
            })
})

控制器:

代码语言:javascript
复制
$scope.watchMonth = function(value) {
    //handle value passed from directive
}

如您所见,我的控制器中有一个绑定函数'watchMonth‘,它是从指令中调用的。现在,我想在指令中添加另一个函数,它绑定到控制器中的其他函数中。我该怎么做?好像没法把我的头绕过去。

我想要的是,我正在处理我的指令中的单击,并根据该单击获得一个值。现在,我想将这个值传递给控制器,它将修改控制器中的“图形数据”(我已经提供了一个观察组)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-22 10:01:58

在html中添加如下方法:month=“watchMonth()”第二个函数=“function()”

确保在函数名的末尾添加括号

代码语言:javascript
复制
  <div graph-visualization data="graphdata" type="graphtype" month-filter="watchMonth()" second-function="secondFunction()" timespan="timespan" id="graph" ng-if="!loading">

代码语言:javascript
复制
app.directive('graphVisualization', function() {
return {
    restrict: 'A',
    scope: {
      data: '=',
      type: '=',
      timespan: '=',
      monthFilter: '&',
      secondFunction: '&'
    },
    link: function(scope, element, attrs) {
        scope.updateMonth = function() {
            var func = scope.monthFilter();
            func(scope.month)
        }

        scope.$watchGroup(['data', 'timespan', 'type'], function(newval, oldval) {
             scope.month = 'something'
             scope.updateMonth()
        })

})

增加了一个柱塞,也许这对http://plnkr.co/edit/cISSlQpQF6lFQrDdbTg4?p=preview有帮助

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30976789

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档