首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >函数(表达式)绑定无效

函数(表达式)绑定无效
EN

Stack Overflow用户
提问于 2017-04-19 13:04:19
回答 1查看 276关注 0票数 1

我不明白为什么这件事不工作。

我正在尝试将一个简单的函数从父控制器绑定到一个子自定义指令。如果我使用&,它就不能工作,但是如果我使用=<,它就能正常工作。我知道这是一种糟糕的实践,但为什么它有效,而&却不行呢?也许我错过了一些很简单的东西?

下面是剧本:

JS

代码语言:javascript
复制
var app = angular.module('myApp',['ngMaterial']);

app.controller('mainCtrl',mainCtrl);
function mainCtrl(){
  var main = this;

  main.test = function(){console.log("test")};
}

app.directive('myDirective',myDirective);
function myDirective(){
  return {
    scope: {},
    controller: myCtrl,
    controllerAs: "dir",
    bindToController: {
      //fn: '&'  //This doesn't work
      fn: '<' // This works
    },
    template: '<md-button ng-click="dir.fn()" class="md-raised">click</md-button>'
  };

  function myCtrl(){

  }
}

HTML

代码语言:javascript
复制
  <div ng-app="myApp" ng-controller="mainCtrl as main">
    <my-directive fn="main.test"></my-directive>
  </div>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-19 13:57:45

&绑定提供了一个包装器函数来执行表达式。所以,dir.fn()所做的就是获取test属性。

文献资料说,

& or &attr -提供了在父作用域上下文中执行表达式的方法。如果未指定attr名称,则假定属性名与本地名称相同。

要使它按预期工作,它应该是

代码语言:javascript
复制
<my-directive fn="main.test()"></my-directive>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43496606

复制
相关文章

相似问题

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