2017-05-05 85 views
3

我正在使用保險絲主題http://fuse-angular-material.withinpixels.com/dashboard-project)angularJS主題和我有一個角度翻譯和步進的問題。我想翻譯這個步驟的標題,但是html語法很奇怪:step-title =「'Description'」。正如你所看到的,有雙引號和簡單的報價(???),我不知道爲什麼...在HTML屬性上逃避翻譯

下面的例子:

<form name="stepper" ms-stepper ng-submit="vm.submitStepper()" ng-model="vm.stepper" novalidate> 
    <ms-stepper-step ng-form="step1" step="1" step-title="'Description'"> 
     <div ng-include="'app/main/management/users/dialogs/stepper/step-description.html'"></div> 
    </ms-stepper-step> 

    <!-- other steps... --> 
</form> 

step-title =「'Description'」是一個很大的問題,因爲我無法使用角度翻譯。我不能做這樣的事情:

 <ms-stepper-step ng-form="step1" step="1" step-title="'{{ 'trad' | translate }}'"> 

我該怎麼做才能使用步進HTML屬性轉換?

非常感謝!

回答

3

其實你可以通過step-title="'{{ 'trad' | translate }}'"

因爲它有stepTitle: '=?' 但我不知道

你可以改變組件的源代碼:

module.exports = function(){ 
    return { 
     restrict: 'E', 
     require : ['form', '^msStepper'], 
     priority: 1000, 
     scope : { 
      step  : '=?', 
      stepTitle : '=?', 
      optionalStep: '=?', 
      externalCallback: '&?', 
      showButtons: '=?', 
      status: '=' 
     }, 
     compile : function (tElement) 
     { 
      tElement.addClass('ms-stepper-step'); 

      return function postLink(scope, iElement, iAttrs, ctrls) 
      { 
       var FormCtrl = ctrls[0], 
        MsStepperCtrl = ctrls[1]; 

       // Is it an optional step? 
       scope.optionalStep = angular.isDefined(iAttrs.optionalStep); 

       // Register the step 
       MsStepperCtrl.registerStep(iElement, scope, FormCtrl); 

       // Hide the step by default 
       iElement.hide(); 
      }; 
     } 
    } 
} 

所以,你需要修改步進指令

您有2個選項

嘗試切換到stepTitle: '@'

OR

做一些與模板

<div layout="column" layout-align="start start"> 
       <div class="title">{{step.stepTitle}}</div> <!-- here is the title--> 
       <div class="subtitle" ng-if="MsStepper.isStepOptional(step.stepNumber)">Optional</div> 
      </div> 
+0

以「@」它完美(我沒有嘗試第二個選項),但我不明白爲什麼?那是什麼「=?」句法 ?非常感謝Leguest! –

+0

它可以很好地工作,但是您的解決方案@leguest存在問題。實際上,ms-stepper可以更新,它會將「@」擦除到步進指令中。那我該怎麼辦? –

+0

正如我所說的,你需要複製ms-stepper到你的項目中,而不是使用ms-stepper主題。 – Leguest