私のビューは、Redactor WYSIWYG エディターを初期化しています。また、ルートに直接入るときは問題なく機能しますが、あるルートからこのルートに戻ることはありません。つまり から/
へ/documents/1
。
これは私が得るエラーです:
Uncaught Error: Something you did caused a view to re-render after it
rendered but before it was inserted into the DOM.
意見:
ビューにもいくつかコメントをしました。
App.RedactorView = Ember.TextArea.extend({
tagName: 'div',
init: function() {
this._super();
this.on("didInsertElement", this, this._updateElementValue);
},
_updateElementValue: Ember.observer(function() {
var value = Ember.get(this, 'value'),
$el = this.$();
if ($el && value !== $el.getCode()) {
$el.setCode(value);
}
}, 'value'),
_elementValueDidChange: function() {
Ember.set(this, 'value', this.$().getCode());
},
didInsertElement: function() {
console.log('didInsert');
},
willInsertElement: function() {
// these two lines causes the error when coming from other route, but works fine when accessed directly
var test = this.$().attr('class');
this.$().redactor();
// returns fine when accessed directly, otherwise not available, see explanation above
console.log(this.$().getCode());
}
});
コードを移動しようとしましdidInsertElement
たが、以前にアクセスしていた Redactor 機能へのアクセスを失います。
didInsertElement: function() {
// will not throw any errors when transitioned from other route
var test = this.$().attr('class');
this.$().redactor();
// Uncaught TypeError: Cannot call method 'getCode' of undefined
console.log(this.$().getCode());
},
何か案が?