2013-10-21 153 views
-3

我需要通過函數調用將值從一個JavaScript傳遞給另一個。我正在返回從II js到I js的月份值,但是值沒有在html中填充。下面的示例代碼中給出,但它不是working.Kindly幫我解決這個代碼:如何通過價值淘汰賽js

HTML FILE 
======== 
<body> 
    <div id="selectdiv"> 
     <input type="radio" id="radio1" name="radioGrp" value='div1' data-bind="checked:subDiv1" />div1 
     <input type="radio" id="radio2" name="radioGrp" value='div2' data-bind="checked:subDiv1" />div2</div> 
    <div id="myDiv" name="myDiv" class="myDiv" style="font-family: Helvetica; font-size: 12pt; border: 1px solid black;"> 
     <div id="subDiv1" name="subDiv1" data-bind="visible:subDiv1()=='div1'" class="subDiv1" style="color: #FF0000; border: 1px dotted black;"> 
      <h5>Section 1</h5> 

      <p>MONTHS...</p> 
      <div id="tabContainer"> 
       <ul data-bind="foreach: subDemoMainObj.months()"> 
        <li> <b data-bind="text: $data"></b> 

        </li> 
       </ul> 
      </div> 
     </div> 
     <br /> 
     <div id="subDiv2" name="subDiv2" data-bind="visible:subDiv1()=='div2'" class="subDiv2" style="color: #FF00FF;border: 1px dashed black;"> 
      <h5>Section 2</h5> 

      <p>This paragraph would be your content paragraph...</p> 
      <p>Here's another content article right here.</p> 
     </div> 
    </div> 
</body> 

I JS FILE(main js file which is calling II js file for getting value of months) 
========= 
require(["knockout-2.2.1","subDemoMain"], 
function(ko,demoMain){ 
$(document).ready(function() { 
     alert("ready"); 
    var vm = function() { 
     var self = this; 
     self.subDiv1 = ko.observable(false); 
     self.subDiv2 = ko.observable(false); 

     self.months = new subDemoMain().getMonths();//ko.observableArray(['Jan', 'Feb', 'Mar', 'etc']); 
    }; 

    /* var getMonths=function(){ 
     return ko.observableArray(['Jan', 'Feb', 'Mar', 'etc']); 
    }*/ 
    // alert("ready2"); 
    ko.applyBindings(new vm()); 

    }); 
}); 

II JS FILE 
========= 
define(["knockout-2.2.1"], 
function(ko){ 

alert("ready1"); 
    var getMonths=function(){ 
     return ko.observableArray(['Jan', 'Feb', 'Mar', 'etc']); 
    } 
}, 
}); 
+1

可能我建議你不要把版本號在你的模塊定義? –

回答

0

使用ko.applybindings

ko.applyBindings(data,document.getElementById('selectdiv')) 

ko.applyBindings接受是因爲使用DOM元素的第二個參數根。

這將讓你做這樣的事情:

<div id="div1"> 
    <input data-bind="value: name" /> <!--here name will appears as 'Cee Aim'--> 
</div> 

<div id="div2"> 
    <input data-bind="value: name" /> <!--here name will appears as 'Krish'--> 
</div> 

<script type="text/javascript"> 
    var viewModelA = { 
    name: ko.observable("Cee Aim") 
    }; 

    var viewModelB = { 
    name: ko.observable("Krish") 
    }; 

    ko.applyBindings(viewModelA, document.getElementById("div1")); 
    ko.applyBindings(viewModelB, document.getElementById("div2")); 
</script> 

希望這有助於...

+0

請向我推薦一些我可以使用document.getElementById()的場景的示例。 – user2800089