我有一个foreach
绑定的表。我不想创建一个按钮,当点击它时会触发一个函数。相反,这个函数会在页面加载时自动运行。
我试过在click
绑定中使用一个按钮或者空的<td>
元素,结果都是一样的。
中文HTML
<td>
<button type="button"
class="btn btn-primary"
data-bind="click: QuickReplyToSpecificRequestByManager(@item.Id)"
>Accept</button>
</td>
技术支持
public QuickReplyToSpecificRequestByManager(obs) {
var data = {
idToPass: obs,
Description: "Approved",
Status: 3
};
if (data.idToPass == undefined) {
console.log("Id missing");
} else {
console.log(obs);
$.post("/Request/SubmitReplyRequestDetails", data)
.done(function () {
console.log("Success");
window.location.reload();
});
}
};
我希望只有当我单击按钮时才运行函数。
1条答案
按热度按时间b4lqfgs41#
当您
applyBindings
时,knockout会评估它所有的系结字串。对于
click: QuickReplyToSpecificRequestByManager(@item.Id)
,它将通过计算:
右侧的部分来初始化click
绑定(:
左侧)。因为
QuickRepl...
是一个函数,它后面跟着( ... )
,所以它被调用了。若要修正这个问题,您可以
bind
插入的值,而不呼叫: