2017-11-14 2 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

관련 문제