2014-12-18 2 views
1

우리 앱은 각도 1.3을 사용하지 않습니다 (그러나 업데이트하기 전에 종속성을 확인해야합니다). 그러나 간단한 텍스트 속성에서 1.3의 One-time binding을 사용해야합니다. 정적 텍스트를 표시하는 간단한 지시문

return { 
     scope: { 
     'text': '=' 
     }, 
     restrict: 'AE', 
     template: '{{ text }}', 
     link: function link($scope, element, attrs) { 
     } 
    }; 

그리고이

<span static-text text="friend.name"> 

문제처럼 사용이 여전히 {{ text }} (Batarang에서 스크린 샷)

에 시계를 추가하는 것을 달성하기 위해이 지침을 쓴 enter image description here

영구 시계없이 텍스트를 표시하는 방법은 무엇입니까? (this solution에서 보았지만 텍스트를 표시하기에는 너무 많은 것처럼 보입니다.)

EDIT : @arturgrzesiak 및 @PSL에서 제안한 솔루션을 사용하여 끝났습니다. @ arturgrzesiak의 솔루션은 비동기 프로세스가 없을 때 사용되었으며, 다른 시나리오에서는 @ PSL을 사용했습니다. 두 가지 솔루션 모두 작동하지만 더 많은 시나리오를 다루기 때문에 @ PSL을 받아 들일 것입니다.

+2

로 사용 :'제거 scope'과'template', element.innerHTML = 텍스트 '바인드합니다에서 그냥'설정'link' 함수에서 텍스트 값을 얻을 . –

+0

그래, 수동으로해야 할거야. 하지만 실제로 비동기 적으로로드하는 경우에는 작동하지 않을 것입니다. 어떤 경우에는 temp watch를 추가하여 html로 설정하고 watch를 제거해야합니다. – PSL

+0

@arturgrzesiak 귀하의 의견을 주셔서 감사합니다,하지만 그것을 시도했다 'Attrs.text' 반환합니다'friend.name' 그 식의 값 대신에, 그 외에 innerHTML 할당이 작동하지 않습니다 당신이 보간법을 사용할 필요가 있기 때문에 빈 스팬을 얻었을 때부터 –

답변

1

당신이 시계를함으로써 얻을 몇 가지 장점이 있습니다. 하나의 예제는 데이터를 비동기 적으로 설정하는 실제 코드에서 다음 다이제스트주기 동안 바운드 변수가 업데이트됨을 의미합니다. 그러나 어떤 경우에는 과도 함 (따라서 bindonce 또는 다른 시계 제거 라이브러리 또는 1.3 양방향 바인딩이 있음)이 있습니다. 당신이 할 수있는 한 가지는, 단지 데이터를 가져올 때까지 시계를 사용하고 가져온 후에 그것을 지우고 지침에서 수동으로 html을 설정하면됩니다.

return { 
    restrict: 'AE', 
    link: function link($scope, element, attrs) { 
     var unwatch = $scope.$watch(attrs.staticText, function(val){ //Set up temp watch 
      if(val){ 
      unwatch(); //Unwatch it 
      element.html(val); //Set the value 
      } 
     }); 
    } 
}; 

그냥 확인

<span static-text="friend.name"> 
1

솔루션은 내가 코멘트에서 제안한 것보다 약간 복잡합니다.

app.directive('once', function($parse){ 

    return function(scope, element, attrs){ 

     var parsed = $parse(attrs.once)(scope); 
     element.html(parsed); 

    } 

}); 

DEMO

+0

fyi ..'$ parse'를 삽입 할 필요가 없으며,'scope. $ eval (attrs.once) '를 사용할 수도있다. – PSL

+0

업데이트 된 질문을 읽어 주셔서 감사합니다. 너의 도움으로 –

관련 문제