在foreach中的ObservalArray中选择knockout.js自定义内容

在foreach中的ObservalArray中选择knockout.js自定义内容,knockout.js,Knockout.js,我有以下html片段: <tbody data-bind="foreach: ptData"> <tr id="Tr1"> <td><a data-bind="attr: {href: '/ProjectTrack/IssueGrid.aspx?IssueID='+ptId}">PT Launch</a></td> <td nowr

我有以下html片段:

<tbody data-bind="foreach: ptData">
            <tr id="Tr1">
                <td><a data-bind="attr: {href: '/ProjectTrack/IssueGrid.aspx?IssueID='+ptId}">PT Launch</a></td>
                <td nowrap="nowrap" data-bind="text: ptId">
                </td>
                <td nowrap="nowrap" data-bind="text: ptProject">
                </td>
                <td nowrap="nowrap" data-bind="text: ptTitle">
                </td>
                <td nowrap="nowrap" data-bind="text: ptPriority">
                </td>
                <td nowrap="nowrap" data-bind="text: ptType">
                </td>
                <td nowrap="nowrap" data-bind="text: ptStatus">
                </td>
                <td nowrap="nowrap" data-bind="text: ptUpdated">
                </td>
                <td nowrap="nowrap" data-bind="text: ptAssignedTo">
                </td>
                <td style="display: none" data-bind="text: ptUrl">
                </td>
            </tr>
        </tbody>
我有一个jQuery ajax调用来返回填充在DataResult对象中的数据,每个DataResult对象被推送到viewModel.ptData。以下knockout.js命令在HTML代码段中似乎不起作用:

"attr: {href: '/ProjectTrack/IssueGrid.aspx?IssueID='+ptId".  

我到底做错了什么?

如果你想绑定到一个表达式(这里你正在用
+
构建链接),其中你有可观察的属性(
ptId
),你必须像调用函数一样调用它们。所以您缺少了
()

那么您就不需要在绑定中使用
()
,因为现在您直接绑定到一个可观察对象:

<a data-bind="attr: { href: launchLink }">


看起来不错,你能把这篇文章贴在小提琴上吗。我没有完全理解如何正确地绑定。谢谢你的帮助。
<a data-bind="attr: {href: '/ProjectTrack/IssueGrid.aspx?IssueID=' + ptId() }">
function DataResult(ptId, ....) {        
        this.ptId = ko.observable(ptId);
        this.launchLink = ko.computed(function(){
            return '/ProjectTrack/IssueGrid.aspx?IssueID=' + this.ptId()
        }, this);
}
<a data-bind="attr: { href: launchLink }">