我在 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
时绑定失败。我传入名称字段,绑定工作正常。我也试过Id.toString()
但仍然得到Id未定义的错误。如下所示,我正在考虑使用计算机来解决问题。如果这是唯一的解决方案,我认为最好扩展breeze实体,使其流向任何下游视图模型。
答案 0 :(得分:0)
您需要一个名为linkUrl的计算observable。
self.linkUrl = ko.computed(function(){ return $ root.link + id; });
http://knockoutjs.com/documentation/computedObservables.html