0

我正在使用 knockout.js 和 upshot.js 从服务器上的 API 控制器获取项目列表。这基本上是我的视图模型:

self.templatesDataSource = upshot.dataSources.Templates.refresh();
self.templates = self.templatesDataSource.getEntities();

绑定到属性工作得很好:

<div data-bind="foreach: templates">
    <a href="#" data-bind="text: Title"></a><br />
</div>

但是假设我希望文本不仅显示标题,还显示标题和其他值的组合?假设我想要Title + ' ' + Id. 基于此处的“示例 4” ,我认为我应该能够执行以下操作:

<div data-bind="foreach: templates">
    <a href="#" data-bind="text: function(item){return item.Title + ' ' + item.Id; }"></a><br />
</div>

但是,我看到的是函数文本(function(item){...等)而不是结果。我还需要此功能来为链接构建正确的 href。我怎样才能做到这一点?

4

1 回答 1

2

你可以直接写你的陈述,比如:

data-bind="text: Title + " " + Id"

如果您的属性是可观察的,那么您会这样做:

data-bind="text: Title() + " " + Id()"

为了对你有约束力,href你会这样做:

data-bind="attr: { href: Url }"

计算值时的另一个选项是使用计算的 observable来表示该值。

于 2012-05-03T01:24:51.577 回答