Я хочу создать серию кнопок, которые вызывают функцию, и я хочу вернуться только к кнопке div вызывающего.
Теперь у меня есть:
app.directive("phone", function () {
return {
scope: {
dial: "&"
},
template: '<input type="text" ng-model="value"> <div class="button" ng-click="dial({message:value})">prova! </div> {{ $parent.pippo }}',
};
});
<div ng-app="phoneApp">
<div ng-controller="AppCtrl">
<div phone dial="callHome(message)"> </div><br><br>
а также
$scope.callHome = function (message) {
$scope.pippo = "casa";
};
Как я могу выделить ответ на кнопку звонящего?
Назначьте controller
и controllerAs
Для вашей директивы вы сможете создать новую директиву для каждой кнопки с отдельным контентом:
app.directive("phone", function () {
function PhoneDirectiveCtrl ($scope) {
this.$scope = $scope;
}
PhoneDirectiveCtrl.prototype.dial = function () {
this.pippo = this.message + 'casa';
}
var tempalte = '<input type="text" ng-model="value"> <div class="button" ng-click="ctrl.dial()">prova!</div> {{ ctrl.pippo }}';
return {
controller: PhoneDirectiveCtrl,
controllerAs: 'ctrl',
scope: {
message: '@'
},
template: template
}
});
Не используйте $scope
родителя, когда вам нужно создать несколько экземпляров одной и той же directive
.
PS Не определяйте методы, связанные с директивой, только в $parent
controller. Вы должны создать выделенный controller
с помощью специальных методов, которые вызывают по вашей directive
pippo
от родительского$scope
?