如何在角度指令中使用一种方式绑定?我找不到一个简单易用的示例,而且文档也不易遵循:


  &或&attr-提供一种在以下情况下执行表达式的方法
  父范围。如果未指定属性名称,则属性名称
  假定与本地名称相同。给定和小部件的范围定义:{
  localFn:'&myAttr'},然后隔离范围属性localFn将指向
  用于count = count + value表达式的函数包装器。经常
  最好通过表达式从隔离范围传递数据
  到父范围,这可以通过传递本地地图来完成
  变量名称和值放入表达式包装器fn中。例如,
  如果表达式是增量(金额),那么我们可以指定金额
  通过将localFn称为localFn({amount:22})来获得值。

最佳答案

您可以在指令中使用&运算符,可以使用以下指令:

HTML:

  <div ng-app="myApp" >
      <drink flavor="ctrlFlavor" ng-init="ctrlFlavor = 'blackberry'"> </drink>
      <span>Flavor={{ctrlFlavor}}</span>
  </div>


请注意,您可以根据需要初始化ctrlFlavor,可以在ng-init块中或在controller中进行初始化,如下面的JSFiddle所示。

JS:

var app = angular.module('myApp', []);

app.directive("drink", function () {
  return {
    scope: {
      flavor: "&"
    },
    template: '<input value="{{flavor()}}"/>',
  };
});


请特别注意{{flavour()}。魔术在于它返回一个函数,因此您无法设置该值。

小提琴:http://jsfiddle.net/sgx8zdxc/

您可以使用它,并注意更改输入中的值(显然)将使值仅保留在父作用域中。另外,我也不认为您也可以执行ngModel='flavor()'

09-25 17:56