2

我是 AngularJS 的新手,我仍在探索它的可能性。目前我遇到了这个问题:如何使用另一个变量值命名一个变量?

例如,我的控制器中有这样的东西:

    $scope.item_foo = 'Foo';
    $scope.item_bar = 'Bar';

我可以通过以下方式访问这些值:

    {{item_foo}}
    {{item_bar}}

到目前为止一切顺利,但现在我想动态显示它们。我有一个带有“foo”和“bar”的对象,我用 ngRepeat 循环它。我怎么能做这样的事情:

    {{item_{{variable_with_value_foo_or_bar}}}} // should print Foo and Bar

感谢您的任何帮助!

4

2 回答 2

3

似乎使用对象来存储数据会更好,而不是一堆东西在$scope级别......:

$scope.item = {foo: 'Foo', bar: 'Bar'};
// ...
$scope.variable_with_value_foo_or_bar = 'foo';

然后访问:

{{item[variable_with_value_foo_or_bar]}}
于 2014-03-21T16:03:43.987 回答
1

Within your template, this refers to the current scope, so you can do:

{{ this[ 'item_' + variable_with_value_foo_or_bar ] }}

There are probably better ways to perform what you're trying to do, but hopefully this answers your question.

于 2014-03-21T16:19:59.033 回答