2017-04-13 6 views
0

bootboxjs 경고에 녹아웃 js 뷰 모델에 액세스하고 싶습니다. 왜 내 코드가 작동하지 않는지 아십니까?부트 박스에서 녹아웃 변수/관찰 변수에 액세스하는 방법

JSfiddle : https://jsfiddle.net/bt2pffcd/1/

단순화 된 코드는 다음과 같습니다

<div class="bootbox"> 
    <input data-bind="textinput: testText"/> Typed: 
    <label data-bind="text: testText"></label> 
</div> 
<button data-bind=" click: bootBox">Launch bootbox!</button> 

그리고 내 뷰 모델과 applybindings : 내 뷰 모델이 bootbox의 DOM 요소 때문에 요소를 bootbox 적용되지 배운

var ViewModel = function() { 
    var self = this; 

    self.testText = ko.observable("Test"); 
    self.bootBox = function() { 
     bootbox.alert($("div.bootbox").html()); 
    } 

    } 


    ko.applyBindings(new ViewModel()); 
+0

jsfiddle에 오류가 있습니다. 콘솔을 봐 –

+0

나는 그것의 문제 메이커가 여기에 대해 확실하지 않지만 그것을 보았다. – Developerdeveloperdeveloper

+0

나는 knockout과 reordered의 다른 버전으로 당신의 [바이올린] (https://jsfiddle.net/bt2pffcd/2/)을 업데이트했다. 외부 리소스 - 부트 박스 경고의 텍스트 상자가 채워지지 않은 이유는 무엇입니까? – Forty3

답변

1

applybindings가 호출 된 후 제거되고 추가됩니다. 나는 팝업을 openend하고 콘솔에서 applybindings를 호출하고 그것을 일했다. bootbox에서 내 viewmodel을 사용할 수 있기를 바랍니다.

그래서 해결책을 찾았습니다. 처음에는 특정 div에 바인딩합니다. 그리고 bootbox content를위한 div를 만든 다음, bootbox popup 호출을 만들고 두 번째 div의 내용을 jquery.html과 함께 메시지에 넣은 다음 bootbox 팝업 클래스 [0]에 바인딩을 적용하면 승리가됩니다. 바이올린이 업데이트됩니다.

+1

가능한 경우, jsFiddle 링크조차도 링크 썩어 질 수 있으므로 답변에 jsFiddle의 코드를 포함 시키십시오. –