我需要使用函数调用将值从一个javascript传递到另一个javascript。我正在从II js返回月份值到I js但是值没有在html中填充。示例代码如下所示,但它不起作用。请帮我修复此代码:
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']);
}
},
});
答案 0 :(得分: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>
希望这会有所帮助...