我有以下观点:
<div class="form-group">
<label>Company Name</label>
<input type="text" class="form-control" data-bind="text: $root.CompnayNameFilter">
</div>
<div class="form-group">
<label>Phone Number</label>
<input type="text" class="form-control" data-bind="text: $root.PhoneNumberFilter">
</div>
<div class="form-group">
<label>User Name</label>
<input type="text" class="form-control" data-bind="text: $root.UsernameFilter">
</div>
<div class="form-group">
<label>Database Location</label>
<input type="text" class="form-control" data-bind="text: $root.DatabaseLocationFilter">
</div>
Run Code Online (Sandbox Code Playgroud)
我有以下视图模型:
var viewModel = {
CompnayNameFilter: ko.observable(),
PhoneNumberFilter: ko.observable(),
UsernameFilter: ko.observable(),
DatabaseLocationFilter: ko.observable(),
DoFilterOnFilteredData:ko.computed(function(){
// code to update DoFilterOnFilteredData to false when any other observable changes
})
}
Run Code Online (Sandbox Code Playgroud)
我的要求是,只要用户输入一个新值或更改值Company Name,Phone Number,User Name和Database Location文本框,我必须设置DoFilterOnFilteredData值设置为false.我怎样才能做到这一点?我认为这可以使用计算的observable.
PS:如果可能的话,请提供一个小提琴.
编辑:
JSFiddle:http://jsfiddle.net/seadrag0n/dytre/
您可以使用以下subscribe功能来实现:
self.CompnayNameFilter.subscribe(function (value) {
self.DoFilterOnFilteredData(!!value);
});
self.PhoneNumberFilter.subscribe(function (value) {
self.DoFilterOnFilteredData(!!value);
});
self.UsernameFilter.subscribe(function (value) {
self.DoFilterOnFilteredData(!!value);
});
self.DatabaseLocationFilter.subscribe(function (value) {
self.DoFilterOnFilteredData(!!value);
});
Run Code Online (Sandbox Code Playgroud)
更新:
这是你的小提琴的修改工作版本:http: //jsfiddle.net/DianaNassar/dytre/4/
| 归档时间: |
|
| 查看次数: |
2272 次 |
| 最近记录: |