2017-03-07 3 views
1

좋은 아침 내가 작은 문제가 bindigs 내가 지시가 :액세스

return { 
     restrict:'E', 
     scope: { 
      user: "=" 
     }, 
     template: '<b>{{userLogin}}</b>', 
     link:function(scope,elem,attrs){ 
     }, 
     controller: function ($scope) { 
      console.log($scope.user)//always undefindet 
      $scope.userLogin = $scope.user; 
     }, 
    }; 

그리고 난 템플릿 내가 있기 때문에 컨트롤러를 사용해야의 범위 내 매개 변수 "사용자"를 표시하려면

scope: { 
       user: "=" //when i have this response "undefined" 
       user: "@" //when i have this response not show id only text 
      }, 

내 HTML

<get-user-login user="{{post.user_id}}"></get-user-login> 
: 나는 문제가 (지시어에) 여기 어딘가에 생각 서버 에서 일부 데이터를 다운로드해야합니다

나는 항상 : 콘솔에서 빈 값 또는 정의되지 않음을 얻습니다. 해결 방법. @을 사용하는 경우

+0

을 통해 이동 (http://stackoverflow.com/questions/ : getPost 당신이 $ scope.onePost에 결합하고 있기 때문에, 그래서 아마 올바른 방법입니다 14050195/what-is-the-difference-in-directive-scope-in-angularjs? rq = 1) –

답변

0

당신이로 보간을 사용해야합니다 :

<get-user-login user="{{post.user_id}}"></get-user-login> 

@ 당신이 보간에게

필요하지 않습니다

=를 사용하는 경우

반면 텍스트 값만을위한 것입니다
<get-user-login user="post.user_id"></get-user-login> 

=은 객체에게 당신이 데모를 구축 (바인더 제본 양방향)

+0

아직 정의되지 않았습니다 – Kaker

+0

지시어에 전달할 값이 정의 된 곳에 컨트롤러 코드를 붙여주십시오. –

+0

Kaker

0

을 전달하는이며 잘 작동합니다 :

<!DOCTYPE html> 
    <html lang="en" ng-app="app"> 
    <head> 
     <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.2/angular.min.js"></script> 
     <meta charset="UTF-8"> 
     <title>Document</title> 
    </head> 
    <body ng-controller="ctrl"> 

     <get-user-login user="post.user_id"></get-user-login > 
     <script> 

     angular.module("app",[]) 
      angular.module("app"). 
      controller("ctrl",function($scope){ 
       $scope.post = {user_id:565}; 
      }). 
      directive('getUserLogin', function() { 
       return { 
        restrict:'E', 
        scope: { 
         user: "=" 
        }, 
        template: '<b>{{userLogin}}</b>', 
        link:function(scope,elem,attrs){ 
        }, 
        controller: function ($scope) { 
        console.log($scope.user)//always undefindet 

         $scope.userLogin = $scope.user; 
        }, 
       }; 
      }); 
     </script> 
    </body> 
    </html> 
0

은 당신이 올바른 값을주고 있다는 것을 당신이 확실 지령? [ '@'사이의 차이 '=']

<get-user-login user="{{onePost.user_id}}"></get-user-login>