如何使用Knockout读取模型所有函数并清空输入控件?
如何用Knockout遍历模型的可观察属性并清空
看起来你需要实现一个函数批量清空Modelo_Person里的所有可观察属性,其实Knockout提供了便捷的方法来判断属性是否为可观察对象,结合遍历就能轻松搞定。
先提个小细节:你HTML里的Nombre_Neumatico应该是笔误吧?应该和模型里的Nombre_Person对应,不然绑定会出错哦。
接下来是clear_inputs函数的具体实现,核心逻辑是遍历模型的所有属性,用ko.isObservable()判断是否为Knockout可观察对象,若是则赋值空字符串清空:
self.clear_inputs = function () { // 遍历Modelo_Person的所有属性 for (var prop in self.Modelo_Person) { // 过滤出Knockout可观察对象 if (ko.isObservable(self.Modelo_Person[prop])) { // 清空可观察属性的值 self.Modelo_Person[prop](''); } } };
补充说明:
ko.isObservable()能识别所有Knockout响应式对象,包括ko.observable()、ko.observableArray()、ko.computed()等。如果你的模型里有数组类型的可观察属性,需要单独处理(比如赋值[]),但你的Modelo_Person都是字符串类型,直接赋值''就足够。- 要确保ViewModel里已经正确实例化了模型,比如:
var Person_ViewModel = function() { var self = this; // 实例化Person模型 self.Modelo_Person = new Modelo_Person(); // 其他方法... self.clear_inputs = function () { // 上面的遍历代码 }; };
这样调用self.clear_inputs()时,就会自动清空所有可观察属性的值啦。
内容的提问来源于stack exchange,提问作者LOORENITAX
相关产品推荐
相关产品推荐

