これらの質問をたくさん見てきましたが、有効な解決策が見つかりませんでした。これは機能しないが機能するはずのフィドルです。
http://jsfiddle.net/cdparmeter/j2K7N/2/
コントローラ:
$scope.foo = function (textArray) {
console.log(textArray)
};
指令:
return {
restrict: 'E',
replace: 'true',
scope: {
methodToCall: '&method'
},
template: "<div>
<input ng-model='textToPush'/>
<button ng-click='pushText'>Push</button>
<button ng-click='finish'>Finish</button>
</div>",
link: function (scope, element, attrs) {
scope.paragraphs = [];
scope.pushText = function () {
scope.paragraphs.push(scope.pushText);
scope.pushText = "";
}
scope.finish = function () {
scope.methodToCall(scope.paragraphs)
}
}
}
HTML:
<div ng-app="MyApp">
<div ng-controller="MyController">
<container data-method="foo">
</div>
</div>
親スコープのコントローラーでカスタム処理が必要なディレクティブ内に配列を作成しています。ディレクティブに渡すモデルの親スコープに時計を投げることができることは知っていますが、それはハックで汚いようです。助言がありますか?