2017-06-20 12 views
1

私は1つのコンポーネントで兄弟方法をトリガーする方法を見つけ出すことはできませんトリガー兄弟方法VUE JSが

私はこの

methods: { 
     closeModal: function(){ 
      function closeM(){ 
       $('.modal').css({opacity: 0 , 'visibility':'hidden'});  
      } 
      closeM(); 
     }, 

     closeOutside: function(){ 
      $(document).mouseup(function (e){ 
      var container1 = $('.modal__box'); 
      if (!container1.is(e.target) && 
      container1.has(e.target).length === 0) 
       { 
       this.$emit('closeModal',closeM()); 
       } 
      });  
     } 
    } 

私のテンプレート

    <div class="modal" @click="closeOutside()"> 
         <div class="modal__box z-depth-2 pr"> 
          <div class="modal__header"> {{header}} </div> 
          <i class="modal__close pa fa fa-times" @click="closeModal() "> </i> 
          <div class="modal__content"> 
           <slot> </slot> 
          </div> 
         </div> 
       </div> 

Iのようなメソッドを持っていますcloseModalを起動できません。何か不足していますか?私はちょっと新しいvue jsには、なぜそれが動作していないのですか?ありがとう!

+0

と交換してください、あなたは 'closeOutside'から' closeModal'を呼び出すことができないことを意味しますか? – Bert

+0

ええ、私はcloseModalの機能を起動したい – clarkoy

答えて

1

Vueでは、すべてのメソッドがすべてのデータと同様にthisにバインドされ、計算されます。 だから利用できるthis.closeModal()

編集: 私はあなたが始めるのを手伝ってくれるかもしれないフィドルを作成しました。注意:これはあなたの現在のソリューションを完全に再構築したものですが、それは「vue」のやり方です。
私はvueにもかなり新人ですので、気軽に改善してください。

https://jsfiddle.net/DarkFruits/gr0j9s6x/

+0

私はすでにそれをやった、何も起こらない – clarkoy

0
this.$emit('closeModal',closeM()); 

this.$emit('closeModal',this.closeModal()); 
関連する問題