如何使用AngularJS显示动态创建的变量的值

时间:2017-10-26 10:50:04

标签: html angularjs

我的HTML模板代码是:

<p>{{"fieldname_"+lang}}</p>

在控制器中我有以下内容:

$scope.lang = "mr";
$scope.fieldname_mr = "Dynamic varible";

我希望结果为Dynamic varible,但它是fieldname_mr

我怎样才能实现这一目标?

3 个答案:

答案 0 :(得分:2)

您可以使用bracket notation来实现此目标:

angular.module('app', [])
.controller('testController',
  function testController($scope) {
   $scope.lang = "mr";   
   $scope.dynamicVars = {fieldname_mr : "Dynamic varible"};

});
<body ng-app="app">
<div class="table-responsive" ng-controller="testController">
    {{dynamicVars["fieldname_" + lang]}}
</div>
</body>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>

答案 1 :(得分:0)

你想要的是i made a middleware解决方案,它保留了所有你需要的但通过一个使var返回的函数传递,理解这样做的角力

<div ng-controller="MyCtrl">
  <span ng-init="">{{getValue('fieldname_'+lang)}}</span>
</div>

var myApp = angular.module('myApp',[]);



function MyCtrl($scope) {
    $scope.lang = "mr"; $scope.fieldname_mr = "Dynamic varible";
    $scope.getValue =function(name){
        return $scope[name] ||'no existe man';
    }
}

答案 2 :(得分:0)

是的,您可以按照以下方式设置动态变量,如下所示:

您希望变量名称存储在变量中,而不是按照以下代码:

$scope[dynamic_var]=Value of variable;

当您获取此值时:

不修复范围属性时使用此选项 alert($scope[dynamic_var]) 在修复属性名称时使用  alert($scope.dynamic_var)