angular 指令数据绑定

angular directive data binding

我正在尝试编写一个显示对象属性的简单 Angular 指令,但我不明白绑定是如何工作的。

<div ng-repeat="c in cars">
   <div car carElement={{c}}></div>
<div>  

.directive('car', function() {
  return {
   template: function(elem, attr){
     var car = attr.carElement;
     return car.brand + ' ' + car.model; 
   }
 };
});

我无法绑定孔对象,只能绑定简单的属性。例如,这有效:

<div ng-repeat="c in cars"> 
  <div car brand={{c.brand}} ></div> 
<div> 
.directive('car', function() { 
  return { 
    template: function(elem, attr){ 

    var brand = attr.brand; 
    return ''+brand; 
  } 
  }; 
});

如何将整辆车发送到指令模板?

您必须传递对象,但不能在表达式内部传递:

<div ng-repeat="c in cars">
   <div car carElement="c"></div>
<div>  

指令:

.directive('car', function() {
  return {
   scope: { car: "=carElement" },
   template: function(elem, attr){
     //you now have 'car' in scope.car
   }
 };
});