向KO传递在对象内可观察到的计算值
Passing values to KO computed observable within an object
尝试使用javascript将值公开给对象中对象内可观察到的KO计算值。我目前在页面上看到"未定义"。。。
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()) { ... }
产生"意外令牌("
请参阅以下jsFiddle:http://jsfiddle.net/JD7fL/.
ko.computed
的函数自变量不需要将givenName
和firstName
作为自变量。您可以简单地引用要在计算函数中使用的字段。但是,因为对象中有fullName
,而不是构造函数,所以不能引用这些字段。我将self.identity
拆分为一个新的Identity
构造函数。
意外的令牌错误是由于Employee
末尾的一个不正当的关闭paren导致的。
JavaScript
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());
HTML
<div data-bind="with: identity">
<div data-bind="text: fullName"></div>
</div>
相关文章:
- 下拉列表未从计算的可观察项更新
- 在编辑记录上可观察的挖空 JS 计算
- 挖空映射:加载数据后,父模型中的计算可观察量不会更新
- Knockout.js:在可选定义的值上计算可观察性
- 如何使用ES6在Ember中声明可观察性或计算属性
- 击倒计算的可观察到的未发射'写'
- 向KO传递在对象内可观察到的计算值
- 如何使某些可观察的“独立”计算可观察(Knockout.js)
- 如何在运行时向计算可观察量添加其他数组项
- Knockout.js - 如何在计算的可观察量中获取可观察属性的值
- 在不重置对象的情况下重新计算计算可观察量
- 从计算的可观察量中获取价值
- Knockout的可写计算在AngularJS中可观察的模拟是什么?
- 使挖空计算订阅不在初始执行路径中的可观察量
- 如何在淘汰.js中实现可计算的可观察量
- 根据异步数据计算的可观察量
- .replace() 表达式未在计算可观察量中更新
- 对计算可观察量的挖空 JS 绑定不起作用
- 挖空添加计算中断可观察数组
- 将通过原型计算的可观察对象添加到构造函数中