1

我仍然无法使用var来标识数组中的对象。以下是我现在所拥有的:使用变量的值查找数组中的项目

在控制器

$scope.allbooks=[ 
{book1={title:"Eat Pray Love", price:"$3.99"}, 
{book2={title:"DaVinci Code", price:"$7.99"}} 
] 

$scope.pick=function(name){ 
    $rootScope.choice = name; 
} 

在HTML模板

<ion-item ng-click="pick(book1)"> 

{{allbooks.choice[0].title}} <----This does not work 

使用警报,以确保选择= BOOK1它确实......我不知道我在做什么错

请帮助:(

+1

你'allbooks'赋值语句看起来并不像正确的JavaScript语法。 – jfriend00

回答

1
[ 
{book1={title:"Eat Pray Love", price:"$3.99"}, 
{book2={title:"DaVinci Code", price:"$7.99"}} 
] 

无效的javascript。如果你正试图定义一个对象字面你需要调整你的语法有点:

$scope.allbooks = [ 
    {title:"Eat Pray Love", price:"$3.99"}, 
    {title:"DaVinci Code", price:"$7.99"} 
] 

现在您可以访问每本书:

$scope.allbooks[0]; // returns first book 
$scope.allbooks[1]; // returns second book 
+0

我完全明白你对语法的看法,我想我只是输入太快了......但我该如何解决这个问题{{allbooks.choice [0] .title}} – MehdiN

+0

{{allbooks [0]。 title}}? –

+0

我会尝试再次解释我的问题...所以我想访问数组的这部分:{{things.book1.price}},而是用户选择哪些书价格查看...所以他们可以选择任何书从book1到book99 ...所以我需要用{{things.book1.price}}替换{{things.choice.price}},根据用户的选择分配选择 – MehdiN

1

在控制器:

$scope.allbooks=[ 
    {book1:{title:"Eat Pray Love", price:"$3.99"}}, 
    {book2:{title:"DaVinci Code", price:"$7.99"}} 
]; 

$scope.choice = {}; //a variable to store your choice 

$scope.pick=function(name){ 
    $scope.choice = $scope.allbooks[name]; 
} 

的HTML模板

<ion-item ng-click="pick('book1')"> <!-- pass book1 as string --> 

{{choice.title}} 


angular.module("app", []) 
 
    .controller("main", function($scope) { 
 

 
    $scope.allbooks = { 
 
     book1: { 
 
     title: "Eat Pray Love", 
 
     price: "$3.99" 
 
     }, 
 
     book2: { 
 
     title: "DaVinci Code", 
 
     price: "$7.99" 
 
     } 
 
    }; 
 

 
    $scope.choice = {}; //a variable to store your choice 
 

 
    $scope.pick = function(name) { 
 
     $scope.choice = $scope.allbooks[name]; 
 
    } 
 

 
    });
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="app" ng-controller="main"> 
 

 
    <button ng-click="pick('book1')">Test</button> 
 
    <!-- pass book1 as string --> 
 

 
    {{choice.title}} 
 

 
</div>

+0

错过了'}'为book1 –

+0

@JordanS thnks我编辑它。 – azad

+0

我试过了,但没有奏效......如果我只是使用{{allbooks.book1.title}}它可以工作,但只要我尝试动态地将它替换为变量就会分开:( – MehdiN