0

我有我的控制器中的人类型的对象列表,当我循环他们工作正常,并显示列表中的所有人的名字。 我已经定义了一个控制器来显示结构化数据为什么,但它不是让这块优良工程定义自定义指令与孤立范围depanding对象值

<div ng-app="myapp"> 
        <div ng-controller="MyController"> 
        <div ng-repeat="per in person"> 
         <!-- <test user=" --> 
         {{per.firstName}} 
         <!-- "></test> --> 
        </div> 

但结合自定义指令范围人名 的值当我尝试绑定自定义指令范围to object first name,AngularJS throw error

错误:[$ parse:syntax]语法错误:Token'{'表达式[{{per.firstName}}]第2列的无效键从[{per 。名字}}]。

<div ng-repeat="per in person"> 
        <test user=" {{per.firstName}}"></test> 
       </div> 
       </div> 

      </div> 

AngularJs COND:

var myapp=angular.module('myapp',[]); 
myapp.controller('MyController',function($scope){ 
    $scope.person=[ 
    {firstName:"ali1", 
    lastName:"ahmad" 
    }, 
    {firstName:"ali2", 
    lastName:"ahmad3" 
    }, 
    {firstName:"ali4", 
    lastName:"ahmad" 
    }, 
    {firstName:"ali5", 
    lastName:"ahmad" 
    }, 
    ]; 
}); 



myapp.directive('test',function(){ 
    var directive={} 
    directive.restrict="E"; 
    directive.template="Name : {{user.firstName}}"; 
    directive.scope={ 
     user:"=user" 
    } 
    return directive; 

}); 

如何自定义指令绑定对象指令的价值?

回答

1

试试这个:

<test user="per"></test> 

HTML:

myapp.directive('test', function() { 
    return { 
     restrict: 'E', 
     scope: { 
      user: '=' 
     }, 
     template: 'Name : {{user.firstName}}' 
    }; 
}); 
1

在绑定到一个范围,你只是传递对象,不需要{{}},所以

user="per.firstName" 
1

改变这一行

<test user=" {{per.firstName}}"></test> 

<test user="person"></test> 

在指令中使用ng-repeat。 首先从您的控制器将数据发送到你的指令,这样

<test user="person"></test>// Here you are sending whole array 

然后收到您的user其中包含的person refrence那么你的指令内收到user在某些变量,你做了指示user: "=user"的这里面范围

+0

其不显示任何东西 –