如何在vue-i18n转换字符串中引用父属性值?

时间:2018-07-23 17:37:29

标签: vue.js vuetify.js vue-i18n

我正在尝试使vuetify文本字段可重用,并希望将一些prop数据从父组件传递给变量作为验证转换字符串。此道具最大。用于验证的字符值。

是否可以将prop或data值插入翻译字符串?像...

var
  Excel, Book, Sheet, Range1: OleVariant;
  i, j: Integer;
  Data: Variant;
const
  // Obtained at https://msdn.microsoft.com/en-us/library/office/ff820880.aspx
  xlDown = -4121;
begin
  Excel := CreateOleObject('Excel.Application');
  try
    Book := Excel.WorkBooks.Open('E:\TempFiles\Test.xlsx');
    Sheet := Book.Worksheets.Item['Sheet1'];

    // Get tne range we want to extract, in this case all rows of columns H-J.
    // .End(xlDown) finds the last used cell in the indicated column
    Range1 := Sheet.Range['H1', Sheet.Range['J1'].End[xlDown]];
    Data := Range1.Value;

    // Get the number of columns and rows from the array itself. The addition
    // of 1 is for the fixed row and column, and to synch up with the Data
    // array being 1 based instead of 0
    StringGrid1.ColCount := VarArrayHighBound(Data, 2) + 1;
    StringGrid1.RowCount := VarArrayHighBound(Data, 1) + 1;

    // StringGrid.Cells are accessed in Col, Row order, but the
    // array is returned in Row, Col layout. Note the swap in
    // i and j below in the subscripts to accomodate that fact.
    for i := 1 to StringGrid1.ColCount - 1 do
      for j := 1 to StringGrid1.RowCount - 1 do
        StringGrid1.Cells[i, j] := Data[j, i];

  finally
    // Clean up all references so Excel will close cleanly
    Range1 := null;
    Sheet := null;
    Book := null;
    Excel.Quit;
    Excel := null;
  end;

我尝试过:

props: { 
  maxLength:  { type: Number, default: 20 },
}

i18n: {messages: {
          en: { name_length: "Max. {this.maxLength} characters" },...

}

这是完整的代码供参考:

"Max." + String(this.maxLength) + characters", but it comes out as undefined.

1 个答案:

答案 0 :(得分:0)

好吧,经过一番挖掘,找到了答案:

props: { 
  maxLength:  { type: Number, default: 20 },
}

i18n: {messages: {
          en: { name_length: "Max. {max} characters" },...

}

然后在模板中,您可以将道具传递给翻译:

 $t("name_length", {max: this.maxLength})