사용자 지정 지시문이 있습니다. 링크 함수의 속성은 attributes.user 값을 얻으려고합니다.각도 지시문 - 비동기 attr 보간
<div my-directive user="{{user.name}}"></div>
이제 사용자가 나는 $를 사용하여 특정 URL에 대한 요청을 한 후 JSON 응답에서 다시 받고 있어요 모델 객체는 다음과 같습니다 내보기 페이지에서이 사용자 정의 지시어는 다음과 같은 방식으로 사용되는 http 서비스. 그러나 내 코드에서 'debugger'를 삽입하여 attribute.user 값을 내 지시문에서 확인하면 attribute.user에 대해 공란이 생깁니다. user.name을 "hello"와 같은 것으로 설정하면 실제로 "hello"가 반환됩니다. 나는 또한 시도했다 :
attributes.$observe('user', function(val){...})
그러나 아무 소용 없다. 이것은 비동기 요청을하고 있기 때문에 비어있는 이유입니다. 무슨 일이 벌어지고 있으며 어떻게 해결할 수 있습니까? 감사!
편집 : 여기 내 지시 코드의 단편이다
angular.module('myApp').directive('myDirective', function() {
return {
restrict: 'A',
scope: true,
link: function($scope, elem, attr) {
$scope.user = $.parseJSON(attr.user)
},
controller: ['$scope', '$rootScope', 'GlobalVariables', function($scope, $rootScope, GlobalVariables) {
$rootScope.hasSignedUp = GlobalVariables.hasSignedUp;
$rootScope.signUpId = GlobalVariables.signUpId;
$rootScope.$watch('hasVoted', function(newVal, oldVal) {
if(newVal === true) {
if($rootScope.signUpId == $scope.user.id){
$scope.text = 'Signed Up!';
}else{
$scope.text = 'Sign Up';
}
}else{
$scope.text = 'Sign Up';
}
});
}]
};
});
하지만 그건 단지 "user.name"사용자 이름 대신 값으로 줄 것입니다. 또한, 나는 반드시 사용자의 이름을 얻으려는 것이 아닙니다. 사용자 속성 값으로 전달 된 사용자 객체를 원하면 어떻게해야합니까? – user1848902
정상적으로 데이터를 바인드하면 지침 범위와 바인딩 작업의 소스 코드도 게시 할 수 있습니까? –