Adım 6: Tetikleyici Başlatma

Bu adımda, kaydedildiğini gördüğünüz tetikleyicinin nasıl başlatılacağı gösterilir.

Tetikleyiciler bir bileşen tarafından herhangi bir noktada başlatılabilir. Tetikleyiciler genellikle bir düğmeye tıklama veya bir tabloda satır seçme gibi bir kullanıcı etkileşimiyle başlatılır. Bununla birlikte, bir bileşen herhangi bir ölçüte göre tetikleyiciyi başlatabilir. Örneğin, Temsili Durum Transferi çağrısı nedeniyle veriler değiştiğinde.

Bu örnekte, görüntüye tıkladığınızda whoAreYou niteliğinin geçerli değerini ileten bir tetikleyici başlatılır.

render.js dosyasını düzenleyin ve SampleComponentViewModel nesnesini gözden geçirin.

Tetikleyici başlatmak için:

  1. SampleComponentViewModel nesnesinde tetikleyiciyi başlatmak için Siteler Yazılım Geliştirme Kitini çağıran tetikleyiciyi gözden geçirin.

    self.raiseTrigger = function (triggerName) {
      SitesSDK.publish(SitesSDK.MESSAGE_TYPES.TRIGGER_ACTIONS, {
        'triggerName': triggerName, 
        'triggerPayload': { 
            'payloadData': 'some data here'
        }
      });
    };
  2. Şimdi tetikleyiciyi başlatma fonksiyonunu çağırmak için kullanıcı arayüzünde bir şeye ihtiyacınız var. render.js dosyasını gözden geçirin ve sampleComponentTemplate nesnesini şu girişi içerecek şekilde güncelleyin:

         '<div data-bind="attr: {style: imageStyle, \'data-layout\': alignImage()}, click: imageClicked">' +

SampleComponentViewModel nesnesinde, görüntüye tıklandığında çağrılan JavaScript fonksiyonunu görürsünüz. Bu fonksiyon Siteler Yazılım Geliştirme Kitini çağırır ve ona "imageClicked" tetikleyicisi için tanımlanan tüm eylemleri tetiklemesini söyler (adım 2'deki click bağlamasından iletilen değerdir). Ayrıca tek alanı (payloadData) olan bir triggerPayload iletir ve 'some data here' statik değerini iletir. imageClicked ve whoAreYou değerleri, tetikleyicinin kaydedildiği (önceki adımda) appinfo.json dosyasındaki değerlerle eşleşir.

Örnek kodda tetikleyici click bağlamasının bir veri bağlaması tarafından başlatılıyor ve imageClicked tetikleyici adını iletiyor. Kullanıcının seçtiği yerleşime göre <scs-image> bileşeninin şu anda üç görüntülemesi var. Tetikleyicinin her bir yerleşim için başlatılmasını sağlamak üzere render.js dosyasını düzenleyip aşağıdaki değişiklikleri yapın.

  • Tetikleyicileri farklı yerleşimlerden başlatın. Şu kodun iki girişini bulun:

    '<div data-bind="attr: {style: imageStyle, \'data-layout\': alignImage()}">' +

    Kodu şununla değiştirin:

    '<div data-bind="attr: {style: imageStyle, \'data-layout\': alignImage()}, click: imageClicked">' +
  • Tetikleyicilere iletilecek veri yükünü belirtin. Şu kodu değiştirin:

        self.raiseTrigger = function (triggerName) {
          SitesSDK.publish(SitesSDK.MESSAGE_TYPES.TRIGGER_ACTIONS, {
            'triggerName': triggerName,
            'triggerPayload': {
              'payloadData': 'some data here'
            }
          });
        };

    Onun yerine şu kodu kullanın:

        self.raiseTrigger = function (triggerName) {
          SitesSDK.publish(SitesSDK.MESSAGE_TYPES.TRIGGER_ACTIONS, {
            'triggerName': triggerName,
            'triggerPayload': {
              'payloadData': self.imageBannerText() // pass banner text as payload
            }
          });
        };
  • render.js dosyasını Oracle Content Management anı sunucusu ile eşzamanlı kılın veya sunucunuza yükleyin.

Gerekli kodu gözden geçirdiğinize göre, düğmeye tıklandığında özel bileşeninizin başlatması için tetikleyiciyi bağlayabilirsiniz.

Adım 6'nın Sonuçlarını Kontrol Edin

Artık tetikleyicinize göre yürütülecek bir eylem kaydedebilmeniz ve tetikleyici başlatıldığında eylemin yürütülmesini sağlayabilmeniz gerekiyor:

  1. Site Builder'ın bileşendeki değişiklikleri alabilmesi için sitenizde sayfanızı yenileyin.

  2. Sayfayı Düzenleme moduna alın.

  3. Bileşeninizi sayfaya sürükleyin.

  4. Ayarlar panelini bileşeninizin karşısına getirin.

  5. Ayarlar panelinin en üstündeki Bağlantı sekmesini seçin.

  6. Bağlantı Tipi olarak Tetikleyici Eylemleri'ni seçin.

  7. Kaydedildiğini gördüğünüz imageClicked tetikleyicisine tıklayın.

  8. İletişim kutusunda Sayfa Eylemleri bölümünden Uyarıyı Göster eylemini sürükleyin.

  9. Mesaj alanında payloadData değerini seçin. Bu değer tetikleyiciyi kaydederken girdiğiniz veri yüküdür.

  10. Ayarlar panelini kapatın ve Site Builder'ı Önizleme moduna alın.

  11. Bileşendeki görüntüye tıklayın.

    imageBannerText değerini belirtmediğinizden no message defined uyarısı görünür.

  12. Sayfayı Düzenleme moduna alın ve bileşenin Ayarlar panelini yeniden açın.

  13. Özel Ayarlar'a tıklayın ve Workplace girişi yapın.

  14. Ayarlar panelini kapatın ve sayfayı Önizleme moduna alın.

  15. Bileşendeki görüntüye tıklayın.

    Şimdi click bağlamasında yaptığınız değişiklikten çağrılan güncellenmiş Workplace veri yükünü göstermelidir.

Bir tetikleyici başlatıldığında herhangi bir sayıda eylem yürütebilirsiniz.

Not:

Bir eylemin yürütülmesi için öntanımlı bir sıra yoktur. Her eylem listelendiği sırada çağrılsa da, sonraki eylem çağrılmadan önce eylemin tamamlanması beklenmez. Bir eylem zamanuyumsuz bir çağrı yaparsa sonraki eylem yürütülmeden önce tamamlanamaz.

Adım 7: Eylemleri Kaydetme bölümüne devam edin.