Knockout.js 敲除JS-不是函数错误

Knockout.js 敲除JS-不是函数错误,knockout.js,Knockout.js,我的HTML如下所示: <td>Total Amount to be Paid: </td> <td data-bind="text: invoiceAmount() + ' Kr'"></td> <td>bill:</td> <td data-bind="text: billAmount()"></td> <td>Chosen Provision: </td> <td&

我的HTML如下所示:

<td>Total Amount to be Paid: </td>
<td data-bind="text: invoiceAmount() + ' Kr'"></td>
<td>bill:</td>
<td data-bind="text: billAmount()"></td>
<td>Chosen Provision: </td>
<td><input type="text" data-bind="value: chosenProvision()"/>  Kr</td>
应支付的总金额:
账单:
选定条款:
韩元
JS:

self.invoiceAmount=ko.computed(函数(){
var合计=0;
如果(self.selectedVoices().length>0){
for(var p=0;p
我不断得到错误:self.chosenProvision不是一个函数


我还希望能够修改浏览器中的chosenProvision,这就是它绑定到输入标记的原因。

要修改computed,它需要是一个

您获得的
self.chosenProvision不是一个函数
的原因是,在
self.billmount
中,您使用的是
self.chosenProvision
,此时未定义该函数<代码>计算的
s在创建时执行(
pureComputed
s不执行)

要获得一个可写的计算结果,只需将计算结果定义如下:

self.chosenProvision = ko.computed({
 read: function(){
     if(self.invoiceAmount() < 750){
            return "50";
        } else {
            return (self.invoiceAmount()*0.1);
        }
 },
 write: function (newValue) {
     // Do whatever with newValue
 }
});
self.chosenProvision=ko.computed({
读:函数(){
if(自发票金额()<750){
返回“50”;
}否则{
返回(self.invoiceAmount()*0.1);
}
},
写入:函数(newValue){
//用newValue做任何事
}
});

要修改计算的,它需要是一个

您获得的
self.chosenProvision不是一个函数
的原因是,在
self.billmount
中,您使用的是
self.chosenProvision
,此时未定义该函数<代码>计算的s在创建时执行(
pureComputed
s不执行)

要获得一个可写的计算结果,只需将计算结果定义如下:

self.chosenProvision = ko.computed({
 read: function(){
     if(self.invoiceAmount() < 750){
            return "50";
        } else {
            return (self.invoiceAmount()*0.1);
        }
 },
 write: function (newValue) {
     // Do whatever with newValue
 }
});
self.chosenProvision=ko.computed({
读:函数(){
if(自发票金额()<750){
返回“50”;
}否则{
返回(self.invoiceAmount()*0.1);
}
},
写入:函数(newValue){
//用newValue做任何事
}
});

要修改计算的,它需要是一个

您获得的
self.chosenProvision不是一个函数
的原因是,在
self.billmount
中,您使用的是
self.chosenProvision
,此时未定义该函数<代码>计算的s在创建时执行(
pureComputed
s不执行)

要获得一个可写的计算结果,只需将计算结果定义如下:

self.chosenProvision = ko.computed({
 read: function(){
     if(self.invoiceAmount() < 750){
            return "50";
        } else {
            return (self.invoiceAmount()*0.1);
        }
 },
 write: function (newValue) {
     // Do whatever with newValue
 }
});
self.chosenProvision=ko.computed({
读:函数(){
if(自发票金额()<750){
返回“50”;
}否则{
返回(self.invoiceAmount()*0.1);
}
},
写入:函数(newValue){
//用newValue做任何事
}
});

要修改计算的,它需要是一个

您获得的
self.chosenProvision不是一个函数
的原因是,在
self.billmount
中,您使用的是
self.chosenProvision
,此时未定义该函数<代码>计算的s在创建时执行(
pureComputed
s不执行)

要获得一个可写的计算结果,只需将计算结果定义如下:

self.chosenProvision = ko.computed({
 read: function(){
     if(self.invoiceAmount() < 750){
            return "50";
        } else {
            return (self.invoiceAmount()*0.1);
        }
 },
 write: function (newValue) {
     // Do whatever with newValue
 }
});
self.chosenProvision=ko.computed({
读:函数(){
if(自发票金额()<750){
返回“50”;
}否则{
返回(self.invoiceAmount()*0.1);
}
},
写入:函数(newValue){
//用newValue做任何事
}
});


我已经修改了我的问题。你能看一看吗?谢谢,但我对击倒很陌生,不理解可写计算的概念。我试过了,但没用。您能帮我修改代码,将chosenProvision转换为纯计算的可观测值吗。@Saurabh:只需将
chosenProvision
的定义移到
billAmount
的定义之前。谢谢。从您的第一条评论中可以清楚地看到,computed变量在创建时执行,我试图在创建之前使用computed变量。有时我只是过度阅读,寻找一个事先准备好的答案。再次感谢。现在已经解决了。我还想从浏览器中修改所选的设置值。你知道怎么做吗?我已经修改了我的问题。你能看一看吗?谢谢,但我对击倒很陌生,不理解可写计算的概念。我试过了,但没用。您能帮我修改代码,将chosenProvision转换为纯计算的可观测值吗。@Saurabh:只需将
chosenProvision
的定义移到
billAmount
的定义之前。谢谢。从您的第一条评论中可以清楚地看到,computed变量在创建时执行,我试图在创建之前使用computed变量。有时我只是过度阅读,寻找一个事先准备好的答案。再次感谢。现在已经解决了。我还想从浏览器中修改所选的设置值。你知道怎么做吗?我已经修改了我的问题。你能看一看吗?谢谢,但我对击倒很陌生,不理解可写计算的概念。我试过了,但没用。您能帮我修改代码,将chosenProvision转换为纯计算的可观测值吗。@Saurabh:只需将
chosenProvision
的定义移到
billAmount
的定义之前。谢谢。从您的第一条评论中可以清楚地看到,computed变量在创建时执行,我试图在创建之前使用computed变量。有时我只是过度阅读,寻找一个事先准备好的答案。再次谢谢