我见过很多这样的问题,但还没有找到有效的解决方案。这是一个不起作用但应该起作用的小提琴。
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>
我正在我的指令中构建一个数组,该数组需要在父范围的控制器中进行自定义处理。我知道我可以在传递给我的指令的模型的父作用域中放置一个手表,但这看起来很笨拙和肮脏。有什么建议么?