2015-09-09 121 views
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

其不顯示任何東西 –