Я просто изучаю углы и создаю несколько простых директив, чтобы попробовать что-то. У меня есть (как мне кажется) небольшая проблема, пытающаяся передать параметры из директивы функции контроллера в корневую область.AngularJS - вызывающие методы в родительской области из изолированной области действия не передают аргументы
Обратите внимание на следующий jsfiddle и обратите внимание, что я нажимаю кнопку (изнутри директивы), дает мне неопределенный, тогда как кажется, что он работает нормально, если щелкнуть по кнопке самого контроллера.
Am Я просто не хватает чего-то синтаксис мудрым? Или я совершенно неправ, как это должно работать? Я сделал несколько попыток размещения переменных в разных местах (обратите внимание на «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;
});