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 + '%';