Magento – Magento 2 Add error/success message with knockout

knockoutjsmagento2

I get error:

Cannot read property 'addSuccessMessage' of undefined

When I want to add a success or error message via knockout js to magento 2. I did:

    define([
      'jquery', 'Magento_Ui/js/model/messageList', 'ko'
    ], function($) {
      "use strict";
      return function(config, element, messageList) {
        $(element).click(function() {
          var form = $(config.form);
          if ($('#h_estimate_amount').val()) {
            messageList.addSuccessMessage({
              message: 'Message to be shown.'
            });
          } else {
            messageList.addErrorMessage({
              message: 'Message to be shown.'
            });
            return false;
          }
        });
      }
    });

Any idea?

Best Answer

use code like this.

define([
      'jquery', 'Magento_Ui/js/model/messageList', 'ko'
    ], function($,messageList) {
      "use strict";
      return function(config, element, messageList) {
        $(element).click(function() {
          var form = $(config.form);
          if ($('#h_estimate_amount').val()) {
            messageList.addSuccessMessage({
              message: 'Message to be shown.'
            });
          } else {
            messageList.addErrorMessage({
              message: 'Message to be shown.'
            });
            return false;
          }
        });
      }
    });