AngularJS'编译器'负载时不会将跨度放入角度平移字符串中
Timing of AngularJS 'compiler' at load does not put a span into an angular-translate string
我有一个包含表单的Angular部分页面。在其中一个输入标题中,我想显示基于所选国家的货币。货币符号位于通过角度转换加载的JSON字符串内的跨度中。在分部的页面加载中,输入标题中不显示货币符号。如果用户更改国家/地区,则该国家/地区的货币符号将显示在标题中。以下相关代码的一些时间问题:
HTML
<label for="price" translate>PRICE</label>
<input type="text" id="price" name="price" data-ng-model="cntrl.input.price" size="12" maxlength="12" />
英文翻译的JSON字符串
"PRICE": "Price <span id='currencySymbol'></span><span class='required'>(Required)</span>"
角度控制器-使用John Papa的控制器风格指南作为
function InputFormController( $translate, $translatePartialLoader, selectCountryTranslateFactory, $timeout, $scope ) {
var cntrl = this;
cntrl.input = {};
//set country in select tag for page load
cntrl.input.countrySelected = "US";
$scope.$watch( "cntrl.input.countrySelected", function( newVal, oldVal ) {
setCurrencySymbol( cntrl.input.countrySelected ); //TEST
});
function setCurrencySymbol() { //TEST
var targetSpan = document.getElementById( "currencySymbol" );
switch ( cntrl.input.countrySelected ) {
case 'US':
targetSpan.innerHTML = " $"; //Error: targetSpan is null - on page load, but displays symbol after user selects a different country
break;
case 'CA':
targetSpan.innerHTML = " C$";
break;
default:
//show no symbol
targetSpan.innerHTML = "";
break;
}
}
需要明确的是,我在页面加载时得到了价格(必需),美国是默认国家。如果我换到加拿大,我会得到价格C$(必需)如果我换回美国,我会获得价格$(必需的)
我使用的是Angular 1.3.7如何在角度转换加载后加载跨度?或者有其他方法可以制作setCurrencySymbol函数吗?
我相信这个问题的核心在AngularJS中,但我没有能力修复它(或证明它是一个bug)。我采取了一种不同的方法,从翻译JSON字符串中删除了currencySymbol跨度。我在输入框中添加了第二个标签标签。我以为这是一个包,但令我惊讶的是,W3C将其验证为无错误的HTML。多个标签是可以的。所以在删除跨度后,一行HTML就会改变,它就可以工作了。
<label for="monthlyRental" id="currencySymbol" class="boldHeading"></label><label for="monthlyRental" class="boldHeading" translate>PRICE</label>
在页面加载时,我现在得到$Price(必需)。货币符号随着用户选择不同的国家/地区而变化。货币符号也可以通过更改标签的顺序放置在标题的末尾。但这种方法不会将货币符号放在字符串的中间。对AngularJS有一些非常深入的了解是必要的。
相关文章:
- 如何在JavaScript中将字符串转换为函数引用
- jQuery中是否内置了任何字符串格式化函数
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串
- ng打开空字符串
- 正则表达式在字符串中找到base64
- 如何将字符串值从php页面发送到java脚本页面
- 子字符串/正则表达式以获取字符串中保存的 SRC 值
- 字符串在将其传递给另一个活动Android JavaScript时读取Null
- 对id以某个字符串开头的元素进行计数
- Javascript逻辑运算符和字符串/数字
- 反向字符串比较
- 如何有效地将游戏数据存储在URL查询字符串中
- 可变大小的JavaScript字符串如何成为基元类型
- 如何解雇“;铁局部存储负载”;事件
- 将DOM节点值与字符串Javascript进行比较
- 如何在 Javascript 中将变量的值从字符串转换为整数
- AngularJS'编译器'负载时不会将跨度放入角度平移字符串中
- 如何通过 webhook 将 json 格式的字符串作为有效负载传递给 iron.io 工作线程
- 如何将查询参数作为字符串传递到包含空格的jquery负载中
- Restangular - PUT请求负载被作为查询字符串参数发送