我是Knowckout.js的新手并完成了这个演示。
http://jsfiddle.net/Yawer/7QXCN/#&togetherjs=Aunph9nuxf
在此实现中,dependentobervable是外侧viewModel。我的问题是,是否有一种方法,一个dependentObservable可以像view和其他属性一样进入viewModel吗?
以下是我的代码:
$(function(){
var viewModel={
name: ko.observable("Biala"),
changedName: function(){
this.name("Hussain");
},
nvtoggle: ko.observable(true)
};
viewModel.fullName= ko.dependentObservable(function(){
return this.name() + " is " + (this.nvtoggle() ? " " : " not ") + "visible";
},viewModel);
ko.applyBindings(viewModel);
});
答案 0 :(得分:1)
是的,很可能将dependantObservable放入viewmodel :)
请参阅下面的代码并附上jsfiddle - http://jsfiddle.net/B6AtE/1/。
有几点需要注意:
computed
,因为这是他们现在所称的。 function
并将其移至您的ready函数之外。这只是为了整洁 - 如果你将它全部留在就绪功能中,它就可以正常工作。var self = this;
。在这种情况下,这没有功能效果,但在视图模型中执行此操作是个好主意。添加后,您可以在该视图模型中使用self
,并确保您处于正确的上下文中。如果您对我所做的更改有任何其他疑问,请与我们联系。
var viewModel = function(){
var self = this; self.name = ko.observable("Biala"); self.changedName = function() { self.name("Hussain"); }; self.nvtoggle = ko.observable(true); self.fullName = ko.computed(function() { return self.name() + " is " + (self.nvtoggle() ? " " : " not ") + "visible"; });
};
$(函数(){
var vm = new viewModel(); ko.applyBindings(vm);
});