Knockout绑定在text属性中工作,但在href中使用时会抛出未定义错误



我在 foreach 绑定中有以下绑定:

<h5>Id: <span data-bind="text: ($root.link + id)"/></h5>

显示良好。
如果改成

<a data-bind="attr: { href: $root.link}"/>

锚导航良好(除了id显然没有附加到末尾)。
如果我加入id

<a data-bind="attr: { href: $root.link +id}"/>

我得到'无法解析绑定…Id未定义'.

为什么完全相同的绑定语法适用于文本而不是attr绑定?

谢谢你的帮助。

更新:我使用的是Breezejs,它使用元数据创建 observableArray 。我做了更多的测试,发现当字段为integer类型时绑定失败。我传入了name字段,绑定工作正常。我也尝试了Id.toString(),但仍然得到Id未定义的错误。正如下面所建议的,我正在考虑使用计算机来解决这个问题。如果这是唯一的解决方案,我认为最好扩展微风实体,使其流经任何下游视图模型。

你需要一个叫做linkUrl的可观察对象

自我。linkUrl = ko.computed(function(){返回根美元。链接+ id;});

http://knockoutjs.com/documentation/computedObservables.html

最新更新