Knockout js - 如何在两个 javascript 文件之间传递值
Posted
技术标签:
【中文标题】Knockout js - 如何在两个 javascript 文件之间传递值【英文标题】:Knockout js - How to pass value between two javascript files 【发布时间】:2016-03-16 20:20:53 【问题描述】:我有两个 javascript 文件,分别称为 FileA.js 和 FileB.js。 FileA.js 包含以下函数:
Reports.CompanySearch.InitGrid = function (viewModel, emptyInit)
var columns = [
name: 'CompanyName',
width: 150,
hidedlg: true,
search: false,
formatter: function namelinkformatter(cellvalue, options, rowObject)
return "<a href='#/CompanyDetails/" + rowObject["Id"] + "'>" + rowObject["CompanyName"] + "</a>";
,
name: 'Address', width: 300, search: false ,
name: 'City', width: 100, search: false ,
name: 'State', width: 50, search: false ,
name: 'Zip', width: 80, search: false, hidden: true ,
name: 'Country', width: 120, search: false, hidden: true
];
var grid = $("#searchGrid");
grid.jqGrid(
jsonReader: root: 'rows', total: 'total', page: 'page', records: 'records', cell: 'cell', id: 'Id', repeatitems: false ,
colNames: [
'Company Name',
'Address',
'City',
'State',
'Zip',
'Country'],
colModel: columns,
postData: Reports.CompanySearch.CreateSearchModel(viewModel),
url: '/CompanyReport/Search',
datatype: emptyInit ? 'local' : 'json',
mtype: 'POST',
viewrecords: true,
loadonce: false,
shrinkToFit: false,
multiselect: false,
autowidth: true,
altRows: true,
height: 'auto'
);;
基本上,该函数在页面(页面 A)上创建一个数据网格,其中包含从 SQL Server 中的表加载的公司列表。 公司名称有一个链接,允许用户单击它并在不同的页面(页面 B)上获取公司详细信息。 页面 A 由 JavaScript FileA.js 控制,页面 B 由 JavaScript FileB.js 控制。 每次用户单击公司名称时,我想将公司 ZipCode 传递给 FileB.js 中的函数。 到目前为止,我在网上遇到的解决方案没有帮助,任何帮助将不胜感激。谢谢!
【问题讨论】:
【参考方案1】:由于您使用的是 Knockout,请查看 Components。
协调两者的方法是有一个父文件知道它们并在它们之间进行调解。父级将创建数据对象并将它们传递给两个组件对象。
【讨论】:
以上是关于Knockout js - 如何在两个 javascript 文件之间传递值的主要内容,如果未能解决你的问题,请参考以下文章
如何有条件地绑定到 knockout.js 中的“valueUpdate”?