2017-11-14 12 views
1

ko(ノックアウト)に基づいて以下のモジュールを実装しました。 requirejsのdefineの外で変数にアクセスする方法

define(['ko'], 
    function(ko) { 
     function compareViewModel() { 
      var self = this; 
      self.products = ko.observableArray([]); 
      self.addProduct = function(p) { 
       self.products.push(p); 
      } 
      self.visible = ko.computed(function() { 
       return self.products().length > 0; 
      }); 
     } 

     return { cvm: compareViewModel() }; 
    }); 

私はdefine

$(function() { 
    //ACCESS CVM HERE  
    $('.compare-chk').click(function() { 
     var $chk = $(this).prev('input:checkbox'); 
     if ($chk !== 'undefined') { 
      if (!$chk.is(':checked')) { 
       cvm.addProduct($chk.attr('value')); 
       console.log(cvm.products()); 
      } 
     } 
    }); 
}); 

cvm外にアクセスできるようにしたいでも可能ということですか?

requirejs(['jquery', 'ko'], function($, ko){ 
    $(function() { 
    //ACCESS CVM HERE  
     $('.compare-chk').click(function() { 
      var $chk = $(this).prev('input:checkbox'); 
      if ($chk !== 'undefined') { 
       if (!$chk.is(':checked')) { 
        ko.cvm.addProduct($chk.attr('value')); 
        console.log(ko.cvm.products()); 
       } 
      } 
     }); 
    }); 
}); 

注配列内のモジュールやライブラリは、我々は最初の引数として渡すことそれはかなり可能です:ために

答えて

1

あなたはあなたが、これが定義されているモジュールが必要であることを述べる必要はありcvmアクセスrequirejsには微調整が必​​要です。これらのファイルがアプリケーションのどこにあるかを指定する必要があります。たとえば、requirejsの入門チュートリアルであるhereや、ライブラリの公式ドキュメントであるhereをご覧ください。

+0

これはうまくいきました。ありがとうございました。 –

+0

@AliKhakpouriよろしくお願いします。私が助けてくれてうれしいです。 – Christos

関連する問題