Как директива может вызвать функцию от контроллера с некоторыми параметрами?Вызов функции контроллера из директивы с параметрами
Я хотел бы указать переменную myVar в область. $ Apply (attrs.whattodo);
HTML:
<div ng-app="component">
<div ng-controller="ctrl">
<span ng-repeat="i in myarray">
<span customattr whattodo="addVal">{{i}}</span>
</span>
</div>
Контроллер JS:
function ctrl($scope) {
$scope.myarray = [1];
$scope.addVal = function (value) {
$scope.myarray.push(value);
}
}
Директива JS:
angular.module('component', []).directive('customattr', function() {
return {
restrict: 'A',
link: function (scope, element, attrs) {
var myVar = 5;
scope.$apply(attrs.whattodo);
}
};
});
Это великолепно работает. Последнее: пример, который я дал, был тупой. Но с моим «реальным» примером: значение представляет собой список dicts, который я визуализую с помощью некоторого входного текста. Если я поместил пустую область или область, которую вы дали, все поля ввода пустуют. Любая идея почему?Спасибо – JohnCastle
Честно трудно представить это, не сложно ли вам переместить ваш настоящий образ в плункер? Спасибо – Maksym
Конечно! Вот он: http://plnkr.co/edit/mu9DM1dEyZ36UqVvw0DM Просто поставьте область действия true в директиве, и вы увидите в ней «Toto». Или – JohnCastle