检测Ractive.js中的组件内容更改
Detect component content change in Ractive.js
是否有任何方法可以检测组件的内容何时更改?
例如:
HTML:
<component>
<div>{{name}}</div>
</component>
JS:
component = Ractive.extend({
on...: function () {
// invoked when the inner HTML changes
}
});
我使用{{yield}}
,因此内容在父级的上下文中呈现。
现在,我必须将name
传递给组件,只是为了观察更改(即使我不需要组件上下文中的值)。(或者我会添加一个可以调用的函数)。
<component changes="{{name}}">
<div>{{name}}</div>
</component>
有什么想法吗?
这是可能的,但有点麻烦。
http://plnkr.co/edit/YoTZpyTTyCyXijEteGkg?p=preview
<comp>
{{name}} hi {{thing}}
</comp>
comp = Ractive.extend({
template: '<div>{{yield}}</div>',
oncomplete: function() {
var self = this;
self.partials.content.forEach(function(partial) {
if (partial.r) {
self.parent.observe(partial.r, function(newValue) {
console.log(partial.r + ' changed to ', newValue)
}, {init: false});
}
});
}
})
Yield/Content实际上只是一个特殊的分部,因此它将循环该分部中的项目,并为每个关键路径设置一个观察者。
此演示仅适用于像{{foo}}
这样的简单表达式。如果你在分部中有更复杂的东西,你必须检查渲染的分部,以确定你想在哪个关键路径上观察父级。
相关文章:
- React重新渲染但未显示正确的组件
- 不能从angular2中的子组件指定父组件中的数组
- 拨打'父亲'函数形式a'儿童'ReactJS中的组件
- React组件等待所需道具进行渲染
- 如何创建带有插槽的vue js组件预加载程序
- KnockoutJS-组件-多个实例
- 如何更改reactjs中外部/独立组件的状态或属性
- 如何在react js中将值从一个组件发送到另一个组件
- React Native通过Navigator将用户输入数据传递到选项卡栏IOS中的组件
- React组件-设置页面标题
- 我的shareService在angular 2中发送值工作正常,但当我渲染我的另一个组件时,会获得默认值
- 如何在salesforce aura闪电组件中使用jQuery.val()
- 为react组件传递道具的最佳方式
- [Vue warn]:未能解析组件
- 如何控制组件'的createContent函数被激发
- react组件中的绑定方法
- 如何在react js中移动第二个组件
- 使用加载器时扩展 Ractive 组件
- 检测Ractive.js中的组件内容更改
- 将数据转发到Ractive.js中的组件