【发布时间】:2015-04-02 02:43:35
【问题描述】:
我将一个 JS 组件包装到一个 Ember 插件中,我以前做过很多次,但我一开始就遇到了一个问题,这让我担心可能是ember 有轻微的偏移?无论如何希望可以解释以下原因:
import Ember from 'ember';
import layout from '../templates/components/nav-menu';
export default Ember.Component.extend({
layout: layout,
tagName: 'nav',
classNames: ['navmenu','navmenu-default','navmenu-fixed-left'],
attributeNames: ['role:navigation'],
classNameBindings: ['offcanvas'],
hideAt: null,
offcanvas: function() {
let hideAt = this.get('hideAt');
if(!hideAt) {
return 'offcanvas';
} else {
return 'offcanvas-%@'.fmt(hideAt);
}
}.property('hideAt'),
_initialize: function() {
this.$().offcanvas();
}.on('didInsertElement')
});
这在两个方面失败了。照原样在 offcanvas 计算属性中失败说:
Uncaught TypeError: undefined is not a function
很奇怪,但它变得更奇怪了。如果删除此计算属性,则它会在 _initialize() 调用中失败,并出现相同的“未定义不是函数”错误:
我使用的是 Ember 1.11.0,Ember-CLI 0.2.2。
【问题讨论】:
-
你是否碰巧禁用了原型扩展?
-
我只用这个组件创建了一个全新的“插件”并得到了相同的结果。我想知道 Ember-CLI 0.2.2 是否有问题:(
-
确实感觉原型扩展被阻止了,但我没有关闭它们。