Windows 8 将多个参数发送到WinJS.Binding.converter()函数

Windows 8 将多个参数发送到WinJS.Binding.converter()函数,windows-8,winjs,Windows 8,Winjs,是否有方法将多个参数发送到WinJS.Binding.converter()函数?考虑以下数据和输出: { contactName: "Tara Miller", mainNumber: "555-405-6190", alternateNumber: "555-209-1927" }, { contactName: "Bryan Bond", alternateNumber: "555-574-427

是否有方法将多个参数发送到
WinJS.Binding.converter()
函数?考虑以下数据和输出:

        { contactName: "Tara Miller",  mainNumber: "555-405-6190", alternateNumber: "555-209-1927" },
        { contactName: "Bryan Bond",                               alternateNumber: "555-574-4270" },
        { contactName: "Jenna Siever", mainNumber: "555-843-8823", alternateNumber: "555-799-5424" },

这是HTML。
MyData.chooseBestNumber
converter功能用于显示一个人的主电话号码,或者如果他们没有主号码,则显示“无主号码”:

<div id="listViewTemplate" data-win-control="WinJS.Binding.Template">
    <div class="contactCard">
        <div data-win-bind="innerText: contactName"></div>
        <div data-win-bind="innerText: mainNumber MyData.chooseBestNumber"></div>
    </div>
</div>
下面是我最终希望能够做到的…将多个参数传递到转换器函数中,以便我可以返回主编号(如果已定义)、备用编号(作为备用编号)或消息(如果所有其他操作都失败):


是否可以向
WinJS.Binding.converter()
函数发送多个参数?

您可以将您的电话号码div绑定到
关键字,该关键字将有效地将该div的
innerText
属性绑定到整个模型对象。这样,在转换器中,您就可以访问整个模型

因此,更新后的代码如下所示:

HTML

<div id="listViewTemplate" data-win-control="WinJS.Binding.Template">
    <div class="contactCard">
        <div data-win-bind="innerText: contactName"></div>
        <div data-win-bind="innerText: this MyData.chooseBestNumber"></div>
    </div>
</div>
WinJS.Namespace.define("MyData", {
    chooseBestNumber: WinJS.Binding.converter(function (mainNumber, alternateNumber) {
        if (mainNumber) return mainNumber;
        else if (alternateNumber) return alternateNumber; 
        else return "no phone numbers";
    }),
});
<div id="listViewTemplate" data-win-control="WinJS.Binding.Template">
    <div class="contactCard">
        <div data-win-bind="innerText: contactName"></div>
        <div data-win-bind="innerText: this MyData.chooseBestNumber"></div>
    </div>
</div>
WinJS.Namespace.define("MyData", {
    chooseBestNumber: WinJS.Binding.converter(function (model) {
        if (model && model.mainNumber) return mainNumber;
        else if (model && model.alternateNumber) return alternateNumber;
        else return "no main number";
    }),
});