KnockoutJS:访问自定义组件之外的可观察变量
KnockoutJS: Access to observable Variable outside of an custom component
我已经搜索了很多,但无法弄清楚如何处理我的问题。我创建了一个自定义组件,模板位于<script type="text/html"></script>
标签中。在这个模板之外,我有一个变量,我在做某事后尝试操作它。这不起作用,它没有定义。有没有可能操纵这个可观察的?
我的代码如下所示:
.HTML:
<customcomponent></customcomponent>
<script type="text/html" id="customcomponent-tpl">
<span data-bind="text: foo">Foo</span>
<span data-bind="text: bar">Bar</span>
</script>
<span data-bind="text: foobar">Foobar</span>
.JS:
var customComponentViewModel = function() {
this.foo = ko.observable();
this.bar = ko.observable();
this.foobar = ko.observable();
this.foo('Foo!');
this.bar('Bar!');
this.foobar('Foo! Bar!');
console.log(this.foo());
console.log(this.bar());
console.log(this.foobar());
};
// do another stuff...
/**
* Register KO component
*/
ko.components.register('customcomponent', {
viewModel: customComponentViewModel,
template: {
element: 'customcomponent-tpl'
}
});
ko.applyBindings();
提前非常感谢!
马蒂亚斯
问题是你根本没有一个应用于文档的视图模型,你只有一个组件视图模型。
试试这个:
var vm = { foobar: ko.observable('') };
ko.applyBindings(vm);
在您的组件视图模型中:
ko.dataFor(document.body).foobar('Foo! Bar!');
见小提琴
相关文章:
- Angular2/Typescript:从链接可观察函数访问实例变量
- AngularJS:在没有$watch的情况下观察变量
- KnockoutJS:访问自定义组件之外的可观察变量
- 如何在angularjs中观察这个变量
- 如何从AngularJS中观察窗口变量
- 如何从ViewModel中观察变量并在HTML中更新它
- 聚合物,观察全局变量
- 观察Jquery/Javascript中的变量变化
- AngularJS:观察由变量和函数组成的表达式
- 如何从指令内部观察变量的变化
- Google Chrome开发者工具-全局观察变量
- Vue.js在v-repeat中观察数组变量
- Knockout js观察全局变量
- 如何在Angular2中触发一个应用范围的事件或者观察一个全局变量?
- 将一个可观察数组存储在变量中,并替换它的内容
- 观察这个变量在流星中的变化
- 从控制器观察工厂变量
- 使用另一个变量来初始化knockout可观察对象
- RxJS 5可观察和变量范围,也就是为什么我的变量不可读
- 用Angular观察factory变量