2015-06-19 96 views
2

我想用angularJS评估表达式内部的表达式。请让我知道如何去做?如何在AngularJS中评估表达式中的表达式

问题:

我有两个对象部门及设施,我想显示手风琴部门和设施。所以,我能够通过部门对象和设施对象。现在问题就出现了。由于部门对象具有属性department_name,并且facility具有facility_name.I,所以我通过了department_name和 facility_name来标记指令中的属性,并试图在手风琴html中使用,就像这样{{item。{{label}}}}。我不认为这是正确的。但请让我知道我该如何做到这一点。

在此先感谢

在HTML:

<accordion-directive object="department" label="department_name"> 
</accordion-directive> 
<accordion-directive object="facility" label="facility_name"> 
</accordion-directive> 

在手风琴HTML

<accordion-group ng-repeat="item in object> 
<accordion-heading> 
{{item.{{label}}}} // For departments it should be department[0].department_name 
       // For Facility it should be facility[0].facility_name 

</accordion-heading> 
</accordion-group> 

JSON文件:

{ 
    "department": [ 
        { 
        "department_name": "department 1", 
        }, 
        { 
        "department_name": "department 2", 
        } 
       ] 
     } 

     { 
    "facility": [ 
        { 
        "facility_name": "Facility 1" 
        }, 
        { 
        "facility_name": "Facility 2" 
        } 
       ] 
} 

指令:

  angular.module("app").directive('accordDirective', function() { 
      return { 
      restrict: 'E', 
      scope: { 
       object: '=', 
       label:'@' 
       }, 
      templateUrl: 'accordian.html',  
     } 

回答

4

使用方括号:

{{item[label]}} 
+0

感谢@Micheal。但它是如何工作的。你能解释一下吗?这对我来说真的很有帮助。 – mahi244

+0

这是JavaScript的基本。你可以通过object.foo或者object ['foo']'来访问一个对象属性。有关更多信息,请参见[Property Access](http://www.sitepoint.com/back-to-basics-javascript-object-syntax/)。 – Michael

+0

是的,我昨天才知道,只是忘记了基本键[值]。无论如何感谢迈克尔。 – mahi244