Я могу изменить столбец, который связывается с объектом с меню редактирования в списке sharepoint?

Вы должны убедиться, что ваш params uid не определен.

import { Component, ElementRef, NgModule, NgZone, OnInit, ViewChild, Input, Output, EventEmitter } from '@angular/core';
import { FormControl, FormsModule, ReactiveFormsModule } from "@angular/forms";
import { BrowserModule } from "@angular/platform-browser";
import { AngularFireDatabase } from '@angular/fire/database';
import { Observable, Subscription } from 'rxjs';
import { ActivatedRoute } from '@angular/router';
import {
  DateAdapter,
  NativeDateAdapter,
  MAT_DATE_FORMATS,
  MAT_DATE_LOCALE
  } from "@angular/material/core";

import * as moment from "moment";

import { DatabaseService } from 'src/app/database.service'

const CUSTOM_DATE_FORMATS = {
  parse: {
    dateInput: { month: "short", year: "numeric", day: "numeric" }
  },
  display: {
    dateInput: "input",
    monthYearLabel: { year: "numeric", month: "short" },
    dateA11yLabel: { year: "numeric", month: "long", day: "numeric" },
    monthYearA11yLabel: { year: "numeric", month: "long" }
  }
};
const dateFormat = "DD-MM-YY";

class AppDateAdapter extends NativeDateAdapter {
format(date: Date, displayFormat: Object): string {
if (displayFormat === "input") {
  return moment(date).format(dateFormat);
} else {
  return date.toDateString();
}}}    

export class HistoryComponent implements OnInit, OnDestroy {

  get data(): string {return this.databaseService.serviceData;}

  set data(date) {this.databaseService.serviceData=moment(date).format(dateFormat));} 
  snaps: Observable<any[]>;
  uid: string;

  @Input() placeholder;
  @Output() onFilter: EventEmitter<any> = new EventEmitter<any>();
  @Input() selectedValue;
  @Output() selectedValueChange: EventEmitter<any> = new EventEmitter<any>();
  routeSub: Subscription;
  constructor(
    private db: AngularFireDatabase,
    private ngZone: NgZone,
    private afs: AngularFirestore,
    public databaseService: DatabaseService,
    private route: ActivatedRoute
  ){ }

  ngOnInit() {    
     this.routeSub =  this.route.params
          .subscribe(params => {
            this.uid = params('uid');
            this.snaps = db.list(`snapity-tests/${this.databaseService.serviceData}/${this.uid}`).valueChanges();   
      })
    }

ngOnDestroy(){
  if(this.routeSub){
      this.routeSub.unsubscribe();
  }
}
  onChange($event) {
    this.selectedValue = this.updateDate($event.value);
    this.onFilter.emit(this.data);
  }

  updateDate(date) {
    let formatedDate;
    if (date !== undefined) {
      formatedDate = moment(date).format(dateFormat);      
    }    
    this.selectedValueChange.emit(formatedDate);  
    return formatedDate;   
  }

}}

Я вижу, у вас есть this.databaseService.serviceData, но я не могу найти ни одного this.databaseService, определенного в вашем конструкторе, и я не уверен, что находится в конце serviceData.

Путь firebase должен быть string, если this.databaseService.serviceData не является переменной, возвращающей string, тогда я сомневаюсь, что вы получите что-нибудь от firebase. Поэтому ваш путь неверен.

8
задан Community 23 May 2017 в 11:51
поделиться

1 ответ

Вы не можете динамически изменять столбец меню OOTB в SharePoint. Чтобы «переместить» меню в другой столбец, необходимо создать новый вычисляемый столбец и обернуть рендеринг (DisplayPattern) полями _EditMenuTableStart и _EditMenuTableEnd.

Чтобы увидеть пример того, как это сделать, взгляните на Сценарий PowerShell «AddMenuColumn» из проекта iLoveSharePoint в CodePlex. Сценарий довольно прост, поэтому вы сможете преобразовать его в код, если вам это нужно (или добавить декларативное использование функций).

Вы также можете просто использовать сценарий как есть, чтобы добавить новый столбец меню в свой файл. список.

6
ответ дан 5 December 2019 в 22:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: