Javascript Angular JS-如何根据变量值更改按钮内的文本?

Javascript Angular JS-如何根据变量值更改按钮内的文本?,javascript,angularjs,templates,Javascript,Angularjs,Templates,我在模板中有以下按钮: <button ng-if="downloadInProgress != true" ng-click="downloadData()" class="button button-full button-outline button-positive welcomeButton"> {{ 'DOWNLOAD_SOUNDS' | translate }}

我在模板中有以下按钮:

<button ng-if="downloadInProgress != true"
                  ng-click="downloadData()"
                  class="button button-full button-outline button-positive welcomeButton">
              {{ 'DOWNLOAD_SOUNDS' | translate }}
          </button>

如果值

downloadInProgress == true
现在我在模板中使用两个按钮,并按变量值的顺序显示/隐藏其中一个:

<button ng-if="downloadInProgress != true"
                  ng-click="downloadData()"
                  class="button button-full button-outline button-positive welcomeButton">
              {{ 'DOWNLOAD_SOUNDS' | translate }}
          </button>

          <button ng-if="downloadInProgress == true && (downloadProgress >= 0 && downloadProgress < 100)"
                  class="button button-full button-outline button-positive welcomeButton">
              {{ 'DOWNLOADING' | translate }} {{ downloadProgress}} {{ '%' | translate }}
              <ion-spinner class="spinner-positive welcomePageDownloadProgressSpinner" icon="spiral"></ion-spinner>
          </button>
但我认为这种方法不是一种好方法,因为如果值发生变化,我注意到如果值发生变化,按钮就会闪烁

用一个按钮就可以解决这个问题吗

非常感谢你的建议

{{ (!downloadInProgress ? 'DOWNLOAD_SOUNDS' : ('DOWNLOADING' + downloadProgress +'%')) | translate }} 

我想下载程序适用于当前范围

我建议您执行以下操作:

<button class="button button-full button-outline button-positive welcomeButton"
ng-click="downloadData()">
  <span translate="downloadProgress ? 'DOWNLOADING' : 'DOWNLOAD_SOUNDS'"
  translate-values="{progress: downloadProgress}"></span>
  <ion-spinner class="spinner-positive welcomePageDownloadProgressSpinner"
  ng-if="downloadProgress >=0" icon="spiral"></ion-spinner>
</button>
使用translate标记将防止在加载翻译键时在按钮上呈现翻译键。 由于要进行转换,因此应使用带值的键,并使用“转换值”标记填充这些键。因为有几种语言不会以相同的方式排列单词。 您的密钥可能类似于下载:下载:{{progress}}%, 在控制器上:

$scope.buttonText= 'DOWNLOAD_SOUNDS';
HTML


它将自动更改按钮的文本,并在完成更改文本时更改其他内容

我更新了角度翻译,但渲染的HTML结果现在已损坏。
<button class="button button-full button-outline button-positive welcomeButton"
ng-click="downloadData()">
  <span translate="downloadProgress ? 'DOWNLOADING' : 'DOWNLOAD_SOUNDS'"
  translate-values="{progress: downloadProgress}"></span>
  <ion-spinner class="spinner-positive welcomePageDownloadProgressSpinner"
  ng-if="downloadProgress >=0" icon="spiral"></ion-spinner>
</button>
$scope.buttonText= 'DOWNLOAD_SOUNDS';
<button ng-click="downloadData()"
       class="button button-full button-outline button-positive welcomeButton">
          {{ buttonText | translate }}
</button>
$scope.buttonText= 'DOWNLOADING' + somevalueofpercent + '%';