小编Den*_*uhn的帖子

如何强制Office UI Fabric ChoiceGroup水平对齐

我正在尝试构建一个包含ChoiceGroupSPFx Webpart。当我将CSS样式设置为垂直对齐时:ms-sm12

Show assigned to:
o anyone
* me
o nobody
Run Code Online (Sandbox Code Playgroud)

我喜欢它们在一行中水平对齐:

Show assigned to: o anyone * me o nobody
Run Code Online (Sandbox Code Playgroud)

当我将样式设置ms-sm6为时,它会将它们“混合”对齐:将SliderToggle设置为ms-sm3

Show assigned to: o anyone
* me
o nobody
Run Code Online (Sandbox Code Playgroud)

混合的

有了ms-sm4它看起来像:

ms-sm4

使用ms-sm3,时ms-sm2ms-sm1看起来(标题越来越紧,并且所有选项都在一个列中:

在此处输入图片说明

如何强制/鼓励将选项水平呈现?

css typescript office-js spfx

3
推荐指数
2
解决办法
2141
查看次数

处理0-n承诺的模式?

我必须等待0-n的承诺.我目前检查我是否有0,1或更多的承诺,然后要么不承诺,一个承诺或Promise.All.

这对我来说似乎很糟糕,这个return this._createItemAndReloadItems(logItem)部分重复了三次.是否有更好的模式来实现这一目标?

public createItem( logItem: IInteractionLogItem): Promise<IInteractionLogItem[]> {
  const userPromises: Promise<{}>[] = [];

  if(logItem.Client && logItem.Client.AccountName){
    userPromises.push(this._ensureUser(logItem.Client));
  }

  if(logItem.AssignedTo && logItem.AssignedTo.AccountName){
    userPromises.push(this._ensureUser(logItem.AssignedTo));
  }

  if(logItem.ResolvedBy && logItem.ResolvedBy.AccountName){
    userPromises.push(this._ensureUser(logItem.ResolvedBy));
  }

  if(logItem.Referrer && logItem.Referrer.AccountName){
    userPromises.push(this._ensureUser(logItem.Referrer));
  }

  console.log("SharePointDataProvider.CreateItem: userPromises.length=" + userPromises.length);

  if( userPromises.length == 0) 
  {
    return this._createItemAndReloadItems(logItem);
  }
  else if( userPromises.length == 1) 
  {
    return userPromises[0].then( (value: {}) => { return this._createItemAndReloadItems(logItem); });
  }
  else 
  {
    return Promise.all(userPromises).then( (value: {}[]) => { return this._createItemAndReloadItems(logItem); });
  }
}
Run Code Online (Sandbox Code Playgroud)

是否有更好的模式来处理动态的承诺数量?

javascript design-patterns promise typescript

0
推荐指数
1
解决办法
41
查看次数