Изолированный результат в AngularJS

0

Я хочу создать серию кнопок, которые вызывают функцию, и я хочу вернуться только к кнопке 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";
          };

Как я могу выделить ответ на кнопку звонящего?

  • 0
    Вы хотите изолировать свойство pippo от родительского $scope ?
  • 0
    Привет, Апперирон, я не знаю, как решить мою проблему: Я хочу понять эту ситуацию: КНОПКА1 РЕЗУЛЬТАТ1 КНОПКА2 РЕЗУЛЬТАТ2 и т. Д., Когда я нажимаю на кнопку 1, она вызывает функцию и возвращает свой результат только вызывающему див ...
Теги:
angularjs-scope
isolate-scope

1 ответ

0

Назначьте 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

  • 0
    Большое вам спасибо за помощь! фрагмент кода не запускается, потому что приложение не определено. Вы можете изменить фрагмент кода? Можете дать мне пример HTML? Я новичок в мире. Наконец ... как можно назначить вам несколько звезд в вашем ответе?
  • 0
    Можете ли вы создать простой пример? если на html странице я хочу 3 кнопки, которые при нажатии возвращают значение этой функции scope.b = function () {return 4; }; как я могу решить?
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню