使用'with'绑定命名模板时遇到问题

时间:2012-09-13 17:10:51

标签: knockout.js

我是淘汰赛的新手。我有一个带有交易列表的viewmodel。我在页面左侧显示了几个字段。当用户将鼠标悬停在其中一个上面时,我想在页面右侧显示tade的详细信息。 我的viewmodel看起来像这样

 var self = this;
    self.selectedTrade = ko.observable(null);
    self.trades = ko.observableArray();
    self.selectTrade = function (item) {
        self.selectedTrade(item);
    }

当用户将鼠标悬停在左侧的某个项目上时,会调用selecttrade,因此selectedTrade会有一个值。我在选定的贸易区右边有一个div。

<ul data-bind="template: {name: 'tradelist', foreach: trades}" />
<script id='tradelist' type="text/html">
 <li> <span data-bind="text: Cname, event: { mouseover: $root.selectTrade } "/>&nbsp <span data-bind="text: Cparty"/></li>
</script>
</div>
<div data-bind="template: {with: selectedTrade(), name: 'displayTradeTemplate' }" />

<script id='displayTradeTemplate' type="text/html">

  <table>
            <tr>
                <td>
                    Contract Name:
                </td>
                <td>
                    <span data-bind="text: Cname">
                    </span>
                </td>
            </tr>
</table>

当我加载页面时,javascript compains: Microsoft JScript运行时错误:无法解析绑定。 消息:SyntaxError:预期的标识符,字符串或数字; 绑定值:template:{with:selectedTrade(),name:'displayTradeTemplate'}

任何人都知道该绑定有什么问题。

1 个答案:

答案 0 :(得分:1)

在该模板绑定

中使用data:代替with: