如何在淘汰.js中实现可计算的可观察量
How to implement computable observables in knockout.js
我想添加一些方法。this
指令对我无济于事。
var viewModel = function () {
firstName = ko.observable("Mike");
lastName = ko.observable("Rassel")
//fullName = ko.computed(function () {
//return firstName() + " " + lastName(); }, viewModel);
}
viewModel.fullName = ko.computed(function () {
return this.firstName() + " " + this.lastName(); }, viewModel);
演示:http://jsfiddle.net/gJUqK/
在本地使用 2.1.0 它的工作。
firstName
、lastName
和 fullName
应该是myViewModel
实例的属性。
如文档中所述,这将起作用。添加了self
,因为在fullName
可观察的回调函数中,this
会指向其他内容。
function myViewModel()
{
var self = this;
this.firstName = ko.observable("Mike");
this.lastName = ko.observable("Rassel");
this.fullName = ko.computed(function() {
return self.firstName() + ' ' + self.lastName();
})
}
ko.applyBindings(new myViewModel());
在这里工作:http://jsfiddle.net/gJUqK/1/
部分问题在于,按照您调用 viewModel
的方式,this
绑定到 fullName
函数的全局对象。
您可以通过将viewModel
创建构造函数并向其原型添加fullName
来开始更正此问题:
var ViewModel = function () {
this.firstName = "Mike";
this.lastName = "Rassel";
}
ViewModel.prototype.fullName = function () {
return this.firstName + " " + this.lastName;
};
var view = new ViewModel(); // Call ViewModel with new
console.log(view.fullName()); // Prints "Mike Rassel"
我不明白淘汰赛的东西,但希望这应该让你更接近解决方案。
相关文章:
- 下拉列表未从计算的可观察项更新
- 在编辑记录上可观察的挖空 JS 计算
- 挖空映射:加载数据后,父模型中的计算可观察量不会更新
- Knockout.js:在可选定义的值上计算可观察性
- 如何使用ES6在Ember中声明可观察性或计算属性
- 击倒计算的可观察到的未发射'写'
- 向KO传递在对象内可观察到的计算值
- 长度可计算总是假的
- 如何在淘汰.js中实现可计算的可观察量
- 不能使用可计算的挖空 js
- 微风导航阵列成员是淘汰赛中的可依赖观察对象
- 正则表达式:插入*使其可计算
- 可计算的或可观察的
- Knockout -带有手动更改通知的计算观察对象
- 读在击倒可计算不总是发射与扩展
- 击倒剑道问题绑定通过计算观察
- KnockoutJS:可写的可计算观察对象没有更新
- 计算观察的问题
- 在Knockout JS中使用揭示原型模式的计算观察对象
- 淘汰排序与计算观察不工作