我只是学习角度并创建一些简单的指令来尝试一些东西。我(我认为)是一个小问题,试图将参数从指令传递到根作用域上的控制器函数。
请看下面的jsfiddle并注意我单击按钮(从指令中)给我未定义,而如果单击控制器本身的按钮似乎工作正常。
我只是缺少语法明智的东西吗?或者我应该如何工作?我已经多次尝试将变量放在小提琴中的不同位置(注意'xxx'),看看是否有什么可行,我得到错误或什么都没有。
<div ng-app="myApp" ng-controller="myController">
<!-- root scope -->
<div style="background-color: teal">
<button ng-click="propertyF('yyy')" >F</button>
</div>
<!-- directive firing methods on the root scope -->
<div style="background-color: coral">
<my-directive3 property6="propertyF()"></my-directive3>
</div>
</div>
var app = angular
.module('myApp', [])
.controller('myController', [
'$scope', function($scope) {
$scope.propertyF = function (aValue) {
alert("propertyF fired: '" + aValue + "'");
};
}
])
.directive('myDirective3', function() {
var directive = {
link : function link(scope, element, attrs) {
console.log("link directive 3");
},
restrict : 'EA',
replace : true,
scope : {
property6: '&'
},
template: '<button ng-click="property6(\'xxx\')">property6</button>'
};
return directive;
});
答案 0 :(得分:0)
使用Angular的工作方式,是传递函数绑定还是指定参数。 propertyF()
未指定任何参数。
property6="propertyF(arg)"
然后你可以使用Angular的独特语法来处理这个问题:
ng-click="property6({arg:\'xxx\'})"