javascript - 使用加载器时扩展 Ractive 组件

标签 javascript ractivejs

我一直在尝试使用组件加载器,如 component spec 中所述。 。我不确定如何通过组件文件执行类似的操作:

var bookmarkableBaseClass = Ractive.extend({
    oninit : function(){
        this.on(commonBookmarkEvents);
    },
    data : {
        badgeDefinitions: globalCommonBadgeDefinitions
    }
});

Ractive.components.singlecard = bookmarkableBaseClass.extend({
    template: "#smallcarditem"
});

Ractive.components.singleline = bookmarkableBaseClass.extend({
    template: "#cardlineitem"
});

换句话说 - 拥有一个扩展另一个具有公共(public)属性的基本组件的组件 - 即公共(public)数据以及公共(public)代理事件处理程序。目前组件规范只允许我包含其他组件,但不能像上面那样具有继承。

最佳答案

目前尚不支持此功能,但 has been discussed 。我认为最好的选择是这样的:

<div class='singlecard'>
  <!-- template goes here -->
</div>

<script>
  var bookmarkableBaseClass = require('./bookmarkableBaseClass');

  component.exports = {
    base: bookmarkableBaseClass,

    someSubclassMethod: function () { /*...*/ }
  };
</script>

任何现有的组件加载器都可以轻松修改以实现此目的 - 您使用的是哪个?

关于javascript - 使用加载器时扩展 Ractive 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35347230/

相关文章:

javascript - 根据文本字段值动态禁用选择菜单

javascript - 如何在 Dancer 中找到数据文件的路径以在 Javascript 中使用?

javascript - 住每个jquery?

javascript - 如何在嵌套函数中保留 'this' 上下文

javascript - 如何使用加载时的 react 进行字母排序?

for 循环中的 Javascript WebSQL 查询。如何知道何时完成?

javascript - 如何将 Github 中的代码添加到我的 Codepen 项目中?

javascript - 将项目添加到列表的开头

ractivejs - 如何在 active 组件之间共享行为

javascript - RactiveJS 应该针对触发代理事件的元素,而不是子元素