Knockout js - 如何在两个javascript文件之间传递值

时间:2015-12-11 01:26:59

标签: javascript html asp.net-mvc-4 knockout.js

我有两个名为 FileA.js FileB.js 的JavaScript文件。 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 个答案:

答案 0 :(得分:0)

由于您使用的是Knockout,请查看Components

协调这两者的方法是拥有一个父文件,该文件知道它们并在它们之间进行调解。父级将创建数据对象并将它们传递给两个组件对象。