首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >指令函数参数未定义

指令函数参数未定义
EN

Stack Overflow用户
提问于 2016-09-28 19:54:39
回答 1查看 1.3K关注 0票数 1

指令模板URL:

代码语言:javascript
复制
<div class="filter-input" ng-click="changeVisualization('trocaparaeste')">

指令:

代码语言:javascript
复制
app.directive('asideFilter', function() {
 return {
  restrict: 'E',
  scope: {
    categories: "=",
    change: "&onChange",
    changeVisualization: '&onChangeVisualization'

  },
  templateUrl: 'assets/directives/asideFilter/asideFilter.html',
  controller: function($scope){
  }
 };
});;

指令用法:

代码语言:javascript
复制
<aside-filter change-visualization="onChangeVisualization()"/>

我正在尝试获取参数数据的控制器:

代码语言:javascript
复制
  $scope.onChangeVisualization = function(option) {
   console.log('option', option);
  }

解决方案:

指令模板URL:

代码语言:javascript
复制
<aside-filter on-change-visualization="onChangeVisualization(option)"/>

指令:

代码语言:javascript
复制
app.directive('asideFilter', function() {
  return {
    restrict: 'E',
    scope: {
        categories: "=",
        change: "&onChange",
        changeVisualization: '&onChangeVisualization'

    },
    templateUrl: 'assets/directives/asideFilter/asideFilter.html',
    link: function(scope){
      // pass 'option' variable so it can be used in the callback
      scope.changeVisualization({ option: "worked!" });
    }
  };
});;

指令用法:

代码语言:javascript
复制
<aside-filter change-visualization="onChangeVisualization(option)"/>
EN

回答 1

Stack Overflow用户

发布于 2016-09-28 19:59:04

你们的名字换了:

代码语言:javascript
复制
scope: {
    // prefixed with 'on'
    // so usage: <my-directive on-change-visualization="someFunc(option)"/>
    changeVisualization: '&onChangeVisualization'
},
// example:
link: function($scope) {
    scope.changeVisualization = scope.changeVisualization || angular.noop;

    // pass 'option' variable so it can be used in the callback
    scope.changeVisualization({ option: "worked!" });
}

并将您的html更改为:

代码语言:javascript
复制
<!-- with the prefixed 'on-' -->
<aside-filter on-change-visualization="onChangeVisualization(option)" />

在您的控制器中:

代码语言:javascript
复制
$scope.onChangeVisualization = function(option) {
    console.log('option', option); // logs: 'option worked!'
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39746733

复制
相关文章

相似问题

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