Javascript 将值传递给对象内可观测的计算值
试图使用javascript将值公开给对象中的对象内的可观测值。我现在在页面上看到“未定义”Javascript 将值传递给对象内可观测的计算值,javascript,object,knockout.js,javascript-objects,Javascript,Object,Knockout.js,Javascript Objects,试图使用javascript将值公开给对象中的对象内的可观测值。我现在在页面上看到“未定义” function Employee () { var self = this; self.identity = ko.observable({ employeeTitle: ko.observable(""), titles: ko.observableArray(['Mr','Mrs',
function Employee () {
var self = this;
self.identity = ko.observable({
employeeTitle: ko.observable(""),
titles: ko.observableArray(['Mr','Mrs','Ms']),
givenName: ko.observable(""),
lastName: ko.observable(""),
otherNames: ko.observable(""),
fullName: ko.computed(function(givenName,lastName){
return givenName + " " + lastName;
})
});
//rest of object
)};
我已经尝试了各种选择,我正在接近——有什么想法吗
function(givenName(), lastName()) { ... }
…产生“意外令牌”(请参阅以下JSFIDLE:”
ko.computed
的函数参数不需要将givenName
和firstName
作为参数。您可以简单地引用要在计算函数中使用的字段。但是,由于对象中有fullName
,而不是构造函数,因此无法引用这些字段我将self.identity
拆分为一个新的identity
构造函数
意外的令牌错误是由于员工
末尾的恶意结账导致的
JavaScript
HTML
谢谢!为了展示我是如何使用它的(但在这种情况下仍然不起作用),很高兴我能提供帮助!在这种情况下,您将需要类似于a的东西来迭代该小提琴最外层div的父元素中的employees
数组。如果您想要更详细的答案,可以问一个新问题。
function Employee () {
var self = this;
self.identity = ko.observable(new Identity());
};
function Identity() {
var self = this;
self.employeeTitle = ko.observable("");
self.titles = ko.observableArray(['Mr','Mrs','Ms']);
self.givenName = ko.observable("John");
self.lastName = ko.observable("Doe");
self.otherNames = ko.observable("");
self.fullName = ko.computed(function(){
return self.givenName() + " " + self.lastName();
});
}
ko.applyBindings(new Employee());
<div data-bind="with: identity">
<div data-bind="text: fullName"></div>
</div>