从淘汰js组件中获取数据
Getting data out of knockout js components
我在互联网上看到了很多关于如何使用敲除js组件显示数据的例子。params功能可以很容易地将任何内容传递到显示中。但我从未见过如何从组件中获取数据。
一个数据如何将某个东西绑定到组件上?
示例:
如果我想要一个自动序列化表单输入的组件,该怎么办。
ko.components.register('form-serializer', {
viewModel: function(params){
this.value = ko.observable();
this.name = params.name
this.serialize = function(){
return this.name + '=' + this.value();
}
},
template: '<input data-bind="textInput: value"/>'
}
如何从视图模型调用serialize?
将对象(通常是可观察的,但不一定是)作为参数传递给组件可以让组件和父级都读取和写入它,所以这不是一个方向。您不仅仅是在传入(或传出)数据。您正在共享资源。
您可以使用ko.dataFor来获取绑定到该组件的视图模型,然后从中调用成员函数或变量。但由于某些特殊原因,我不喜欢使用它,因为它会提示我的结构有问题。
我更喜欢的另一种方式是将组件的视图模型放在另一个变量中,这样你就可以直接访问它
类似:
var formSerializer = function(params){
this.value = ko.observable();
this.name = params.name
this.serialize = function(){
return this.name + '=' + this.value();
}
};
var serializer;
ko.components.register("form-serializer", {
template: '<input data-bind="textInput: value"/>',
viewModel: {
createViewModel: function(params){
serializer = new formSerializer(params);
return serializer;
}
}
});
因此,您可以通过serializer.serialize()
调用serialize
函数。
相关文章:
- Ajax-如何获取数据
- 从键值结构中获取数据,并将其与AngularJS中ng重复的值进行比较
- 从数据库中获取数据并插入JavaScript变量
- 从单击的行上的列中获取数据
- Solr查询以按日期月份获取数据&年
- React路由器服务器端渲染和ajax获取数据
- 使用JavaScript在IE9中获取数据列表选项
- 从json子数组获取数据
- 使用angularjs中的rest调用通过id获取数据
- 正在从ruby应用程序中的数据库中获取数据
- 如何从servlet获取数据到ajax成功
- 从选择下拉菜单中获取数据
- 异步获取数据使用JavaScript同步获取数据
- 从服务器获取数据并在选择控件中使用ng选项无法显示选项
- 如何在Angular.js中循环动态添加Fields并获取数据并将其发送到服务器
- JavaScript-获取数据属性的值返回未定义的值
- 如何从文本区域获取数据并使用javascript进行解密
- 在put方法之前从作用域获取数据
- 事件循环的MEAN.JS setInterval进程(从另一个服务器获取数据)
- 使用ReactJS和Flux架构从服务器获取数据的正确方法是什么