Javascript KnockoutJS和计算属性不工作
我刚刚开始淘汰此模型和viewmodel:Javascript KnockoutJS和计算属性不工作,javascript,knockout.js,Javascript,Knockout.js,我刚刚开始淘汰此模型和viewmodel: $(function() { // Class to represent a note function Note(title, content) { var self = this; self.title = ko.computed(function() { var title = title; if(title.length > 0) return title; if(self.content &am
$(function() {
// Class to represent a note
function Note(title, content) {
var self = this;
self.title = ko.computed(function() {
var title = title;
if(title.length > 0) return title;
if(self.content && self.content.length > 0) return self.content.substring(0,19) + "...";
});
self.content = ko.observable(content);
}
// Overall viewmodel for this screen, along with initial state
function TaccuinoViewModel() {
var self = this;
// Editable data
self.notes = ko.observableArray([
]);
// Operations
self.addNote = function() {
self.notes.push(new Note());
}
self.removeNote = function(note) { self.notes.remove(note) }
}
ko.applyBindings(new TaccuinoViewModel());
});
问题在于computed属性:我想做的是:
1-)如果标题的长度大于0,则使用它
2-)如果未定义,请使用content+中的前20个字符
但这不起作用
关于以其他方式执行此操作的任何建议?
self.content
是可观察的,因此您需要调用它以获取当前值:
self.content = ko.observable(content);
self.title = ko.computed(function() {
if(title.length > 0) return title;
var currentContent = self.content(); // <-- get the current value
if(currentContent) return currentContent.substring(0,19) + "...";
});
self.content=ko.可观察(content);
self.title=ko.computed(函数(){
如果(title.length>0)返回title;
var currentContent=self.content();//self.content
是可观察的,因此需要调用它以获取当前值:
self.content = ko.observable(content);
self.title = ko.computed(function() {
if(title.length > 0) return title;
var currentContent = self.content(); // <-- get the current value
if(currentContent) return currentContent.substring(0,19) + "...";
});
self.content=ko.可观察(content);
self.title=ko.computed(函数(){
如果(title.length>0)返回title;
var currentContent=self.content();//除了两个问题外,它还可以工作,我更新了问题以更好地解释它…现在谢谢!这种行为很自然-每当你编辑内容时,标题也会更新。你需要更多的技巧才能工作。对于第二个问题:如果你想写入一个计算的可观察对象,你需要指定如何使用内部工作(请参阅)。我恢复了原来的问题(可能对其他人有帮助)-如果您有更多问题,请打开一个新问题。阅读reand并编写,但仍然不起作用:(但我在这里打开了另一个问题,除了2个问题,我已经更新了问题以更好地解释它…现在感谢!这种行为很自然-每当你编辑内容时,标题也会更新。你需要更多的技巧来实现这一点。对于第二个问题:如果你想写一个计算的可观察对象,你将我需要说明如何在内部工作(请参阅)。我恢复了原来的问题(它可能会帮助其他人)-如果您有更多问题,请打开一个新的问题。阅读reand并编写,但仍然不起作用:(但我在这里打开了另一个问题