$scope变量被视为字符串AngularJs
$scope variable is treated as string - AngularJs
我已经声明并初始化了一些Scope变量,并希望动态访问它们,但当我尝试从html文件访问变量时,该变量将被视为字符串。
JS代码-
$scope.abc3txt = "Hello";
$scope.abc2txt = "hello everyone";
$scope.abc1txt = "hello 123";
在abc"数字"文本之间,每个变量都有一个数字,比如3,2,1。
我想根据html文件中的数字访问变量值。
HTML代码-
<h4>{{abc+a.status+txt}}</h4>
a.status有一些值,比如1,2或3。
这就像html中的"abc3txt"一样打印,而不是返回"$scope.abc3txt"变量的初始化值。
请有人帮忙。。
我不知道是否可以直接用$scope
完成。一种方法是将这些值保存在一个对象中:
$scope.values = {
abc3txt: "Hello",
abc2txt: "hello everyone",
abc1txt: "hello 123"
};
在你看来,你可以这样访问它们:
{{values['abc' + a.status + 'txt']}}
编辑:最好的选择是使用controllerAs语法。假设您在控制器中有:
var vm = this;
vm.abc3txt = "Hello";
vm.abc2txt = "hello everyone";
vm.abc1txt = "hello 123";
那么在您看来:{{vm['abc' + a.status + 'txt']}}
从所有可能的角度来看,以您所寻求的方式动态生成变量名是一种非常非常、SUPER-very的糟糕做法,无论语言是否支持(或缺乏支持)。话虽如此,数组是正确的选择。
在javascript中,绝对不应该以这种方式使用变量名称
考虑使用数组
这样的东西应该会有所帮助:
在控制器中:
$scope.a = {};
$scope.a.status = 2;
$scope.abctxt = [ "hello 123", "hello everyone", "Hello" ];
并且,在模板中:
<h4>{{ abctxt[a.status - 1] }}</h4>
相关文章:
- AngularJS:获取链接中没有哈希的查询字符串值
- 如何将angularjs中的javascript字符串输出为循环数组
- AngularJS,如何更改查询字符串
- $scope变量被视为字符串AngularJs
- 如何在angularjs中实现html格式的字符串
- AngularJS-ng使用字符串索引在数组上重复
- 使用javascript或angularjs特定过滤器搜索字符串中第一个img标记的json值
- 用Angularjs+Typescript将GZip Json字符串解压为普通Json字符串
- AngularJS中的数组未拾取字符串值
- 如何使用AngularJS应用基于Json字符串响应的条件CSS类
- 如何在AngularJS URL中的hashtag(#)前面加上字符串
- 在AngularJS中创建JSON字符串
- 将Byte数组转换为Angularjs中的Base64字符串
- 从输入中获取字符串,并在AngularJS中发出AJAX请求
- Mysql日期时间字符串格式为angularjs中的可读日期
- AngularJs将查询字符串发布到c#控制器
- 将模板呈现为受信任的 HTML 字符串 [AngularJS]
- 为什么对象键的第一个值被视为字符串 - AngularJs
- 未捕获错误:[$http:badreq] Http 请求配置 url 必须是字符串 (AngularJS)
- ng-model with $watch只响应完整字符串(AngularJS)