注册 MDL 组件
Register MDL components
我在前端使用带有车把模板的主干以及 MDL。
例如,我想集成演示下拉菜单。由于它将在稍后加载(而不是在页面加载时加载(,因此下拉列表不起作用。
<button id="demo-menu-lower-right"
class="mdl-button mdl-js-button mdl-button--icon">
<i class="material-icons">more_vert</i>
</button>
<ul class="mdl-menu mdl-menu--bottom-right mdl-js-menu mdl-js-ripple-effect"
for="demo-menu-lower-right">
<li class="mdl-menu__item">Some Action</li>
<li class="mdl-menu__item">Another Action</li>
<li disabled class="mdl-menu__item">Disabled Action</li>
<li class="mdl-menu__item">Yet Another Action</li>
</ul>
根据入门,如果组件是动态的,我需要注册它们。
我的骨干视图是这样的
(function () {
'use strict';
var $ = require('jquery'),
hbs = require('handlebars'),
Backbone = require('backbone');
var menuTPL = require('nav/navigation-links.hbs');
module.exports = Backbone.View.extend({
el: $('.mdl-navigation'),
initialize: function () {
this.render();
this.listenTo(this.model, 'change', this.render);
},
render: function () {
var template = menuTPL({user: this.model.toJSON()});
this.$el.html(template);
},
});
})();
现在,我将在哪里注册此组件,以及对此的合理方法是什么,这样我就不必一遍又一遍地编写相同的代码来注册新内容,因为几乎所有页面都被模板化了?CSS规则是ofc应用的,它只是javascript在这些组件上不起作用。
我甚至有点不知道从哪里开始,所以欢迎任何建议或答案。
到目前为止,我已经发现我可以打电话给componentHandler.upgradeAllRegistered();
,所有这些都将被注册并正常工作。我可以在渲染后将其挂在事件上,但不确定其性能。据我了解,这将通过整个 DOM。
另外,我想避免一个接一个地注册或注册为数组,因为这容易出错和维护噩梦。
我的下一步是查看是否可以将upgradeAllRegistered
限制在特定范围内(来自主干(,以便我只能针对视图正在更改的页面部分。
试试...
componentHandler.upgradeElements(rootElement(;
至少在我向对话框添加元素后,这对我有用。
相关文章:
- 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中移动第二个组件
- MDL 组件与 React 不兼容
- 注册 MDL 组件
- 使用VueJS 2.0和vue-mdl菜单组件,如何响应单击事件?