2016-09-26 72 views
-1

我不善于解释我希望你们了解我的需求并帮助我在这里。angularjs从控制器的值动态显示表达式

我具有低于

<div ng-repeat="item in allitems"> {{displaydata}} </div> 

与NG-重复的图我有以下数据的控制器

$scope.allitems ={ 
1:{name:"car",price:"999",qty:8}, 
2:{name:"bag",price:"127",qty:2}, 
3:{name:"dog",price:"777",qty:3}, 
4:{name:"cat",price:"333",qty:4} 
} 
var displaychoice1 = "{{item.name}}" 
var displaychoice2 = "{{item.price}}" 
$scope.displaydata = "I want " + displaychoice1 + " which cost " + displaychoice2 ; 

我希望用户能够选择“田”,以输出到而不是硬编码在视图中显示的内容。

+0

那么,只要去'

I want {{item.name}} which cost {{item.name}}
' 或者你究竟需要什么? –

+0

这个'ng-repeat'甚至不会像书面那样工作;此模式对于对象无效。 'allitems'必须是一个数组。 – Claies

回答

1

$scope.allitems应该是一个array

$scope.allitems = [ 
    {name:"car",price:"999",qty:8}, 
    {name:"bag",price:"127",qty:2}, 
    {name:"dog",price:"777",qty:3}, 
    {name:"cat",price:"333",qty:4} 
] 

而上的HTML,你可以简单地

<div ng-repeat="item in allitems"> 
    I want {{item.name}} which cost {{item.price}} 
</div> 

编辑

允许用户选择字段可以像

在控制器:

$scope.displaydata = function(item, field1, field2){ 
    return "I want " + item[field1] + " which cost " + item[field2]; 
} 

在HTML:

<div ng-repeat="item in allitems"> 
    {{ displaydata(item, 'name', 'price') }} 
</div> 

在那里你能适应nameprice来自变量,你已经

+0

谢谢taguenizy –

+0

非常感谢,我正在寻找 –

0

可以使用ngoptions它允许用户选择选项:

<select name="mySelect" id="mySelect" 
     ng-options="item in allitems track by $index" 
     ng-model="selectedOption"> </select> 

I want {{selectedOption.name}} which cost {{selectedOption.price}}