小编aar*_*ard的帖子

在TinyMCE中初始化后修改工具栏的正确方法

我正在使用javascript扩展云托管的LMS.因此,我们可以向页面添加javascript,但不能修改不同组件的供应商javascript.

LMS经常使用tinyMCE.目标是在每个tinyMCE编辑器的工具栏上添加一个新按钮.

问题是,由于tinyMCE模块是在供应商的不可触摸的代码中初始化的,我们无法修改init()调用.因此,我们无法将任何文本添加到init()对象的"toolbar"属性中.

所以我以适度的hacky方式完成了这个:

tinyMCE.on('AddEditor', function(e){
  e.editor.on('init', function(){
    tinyMCE.ui.Factory.create({
      type: 'button',
      icon: 'icon'
    }).on('click', function(){
      // button pressing logic
    })
    .renderTo($(e.editor.editorContainer).find('.mce-container-body .mce-toolbar:last .mce-btn-group > div')[0])
  });
});
Run Code Online (Sandbox Code Playgroud)

所以这是有效的,但不用说,我不太愿意在DOM中寻找像插入按钮那样的特定位置.虽然这有效,但我不认为创作者的意图是这样使用它.

如果我们无法修改初始化代码,是否有正确的方法将按钮添加到工具栏中?

javascript jquery tinymce tinymce-4

7
推荐指数
1
解决办法
3083
查看次数

打字稿 - 确保泛型属性存在于具有描述性错误的泛型类型上

(打字稿新手警告)

我正在创建一个可重用的 reducer,它接受一个状态和一个动作并返回该状态,但仅限于接受在给定键处包含某种类型的状态。此键作为函数的参数传递。如果传递的状态对象不包含传递的键,则编译器应引发错误。

现在,我得到了这个工作。然而,在我看来,编译器生成的错误消息并不能充分描述问题。它没有说“类型上缺少 x 属性”,而是给出了其他错误,我将在下面详细说明。

类型

// FetchAction up here, not so relevant...

export type FetchState = {
  status: FetchAction,
  timestamp: Date
} | null

export type LoginState = {
  token: string | null,
  fetching: FetchState
};
Run Code Online (Sandbox Code Playgroud)

基础减速机

const intialState: LoginState = {
  token: null,
  fetching: null
}

const loginReducer: Reducer<LoginState> = (state = intialState, action) => {
  //...other operations 
  return fetchingReducer(state, action, 'fetching');
}
Run Code Online (Sandbox Code Playgroud)

方法一

type FetchContainingState<S, K extends keyof S> = {
  [F in keyof …
Run Code Online (Sandbox Code Playgroud)

generics typescript

4
推荐指数
1
解决办法
1597
查看次数

标签 统计

generics ×1

javascript ×1

jquery ×1

tinymce ×1

tinymce-4 ×1

typescript ×1