Nano Hash - криптовалюты, майнинг, программирование

Как вызвать функцию на контроллере с диалоговым окном Angular Material

У меня есть приложение на основе машинописного текста angular 1.5, использующее угловой материал.

Как я могу вызвать функцию в моем контроллере из диалогового окна?

В моем примере это this.callBack(), который я хотел бы вызвать, когда пользователь подтвердил

Фрагмент кода

 public delete(condition: ModelModule.Condition): void {
        var confirm = this.$mdDialog.confirm()
            .title('delete condition!')
            .textContent('are you sure ?')
            .ariaLabel('delete')
            .ok('Ok')
            .cancel('Cancel');

        this.$mdDialog.show(confirm).then(function(answer) {
             console.log("You decided to delete "+answer)
        // how to call this function on my controller ???              
        this.callBack()

        }, function() {
            console.log("You decided cancel")
        });
    }

  • В чем проблема? Мне кажется, что это будет нормально работать с кодом, который вы разместили 02.01.2017
  • это терпит неудачу с этим: angular.js: 14110 TypeError: Не удается прочитать свойство «callBack» неопределенного 02.01.2017
  • Я сам нашел решение. Начните вызов функции с копирования 'this' в вашу собственную переменную локали // копирование в переменную, иначе вызовы другой функции невозможны var that = this; ... остальная часть функции 03.01.2017

Ответы:


1

Ваш this относится к function, а не к вашему контроллеру. Не используйте function в Typescript, вместо этого используйте функцию стрелки, она не создаст новый this-контекст.

public delete(condition: ModelModule.Condition): void {
    var confirm = this.$mdDialog.confirm()
        .title('delete condition!')
        .textContent('are you sure ?')
        .ariaLabel('delete')
        .ok('Ok')
        .cancel('Cancel');

    this.$mdDialog.show(confirm).then((answer) => {
         console.log("You decided to delete " + answer);
         this.callBack();
    }, () => {
        console.log("You decided cancel");
    });
}

это в Typescript

07.01.2017
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..