我看到很多这样的问题,但没有找到可行的解决方案。这里有一个 fiddle,它不起作用,但应该可以。
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>
我在指令中创建了一个需要在父级作用域的控制器中进行自定义处理的数组。我知道我可以在父级作用域上抛出一个监视器,监视我传递到指令中的模型,但那似乎很笨拙和不干净。您有什么建议吗?