我正在使用Knockout和MVC Core Web应用程序。在我的UI中,我有几个输入文本字段。例如FirstName,LastName和FullName。
我将FullName作为计算的observable。这是我的问题。 情况1:基于某些条件,我想使用FirstName和LastName数据来计算FullName。 (这是示例中显示的常见情况)。
案例2:根据某些条件,我想阅读用户可以在FullName文本字段中输入的输入。有人可以帮助我如何实现这一目标。
function AppViewModel() {
this.firstName = ko.observable('Bob');
this.lastName = ko.observable('Smith');
if(somecondition)
this.fullName = ko.computed(function() {
return this.firstName() + " " + this.lastName();
} else {
return somevalueEnterned in the text box
},这个); }
答案 0 :(得分:1)
没有理由你不能把你的逻辑放入计算本身。对文本框绑定使用单独的observable,然后根据您的条件返回一个或另一个。
function AppViewModel() {
this.firstName = ko.observable('Bob');
this.lastName = ko.observable('Smith');
this.textBoxValue = ko.observable('');
this.fullName = ko.computed(function() {
if(somecondition)
return this.firstName() + " " + this.lastName();
} else {
return this.textBoxValue();
}
}, this);
}