2017-09-13 1 views
0

저는 오늘 조금 뇌사 상태 인 것처럼 느낍니다.각도 바인드 다른 값으로 입력 값

문자열과 입력이 있습니다. 입력 값을 문자열 중간으로 가져와야합니다. 그러나 나는 당신이 문자열에 그것을 볼 수있는 입력에 입력 한 것처럼 바인딩 된 싶습니다.

한 가지 해결책은 문자열을 유출 한 다음 비슷한 것을 할 수 있습니다.

<p>{{stringStart}} {{country}} {{stringEnd}}</p> 

하지만 아마 문자열 그래서 같이 그것을 spilting에서 것은 아마 지루한 것 많은 바르 이겨낼 필요가있는 상황에있을 것입니다. 아래 예를 참조하십시오.

https://jsfiddle.net/bc3chrog/5/

나는 거기에 아마이 작업을 수행하는 또 다른 쉬운 방법이지만 좋은 해결책을 해결 할 수없는 것 같은 느낌.

편집 : 죄송합니다. 범위 (var)에 새 문자열을 다시 저장해야합니다. 어떤 사람들은 몇 가지 작업 솔루션을 만들었지 만 텍스트를 두 곳으로 설정하는 것을 피하려고했습니다. 한 곳에서 정의 된 경우 더 깨끗하고 쉽게 업데이트 할 수 있습니다. 당신이 컨트롤러에 연결된 문자열이 필요하면

답변

2

것은, 당신은 $watch 설정할 수 있습니다.

$scope.$watch('country', function(newValue) { 

    $scope.fullCountryString = 'string start ' + newValue + ' string end'; 

}); 

$scope.country 새로운 값을 가져옵니다 모든 시간은, 새로운 값이 $scope.fullCountryString 생성됩니다. 따라서 필요한만큼 여러 위치에서보기를 fullCountryString에 바인딩 할 수 있습니다.

+0

예. 이것이 아마도 최고의 솔루션입니다! 감사! –

0

function ExampleController($scope) { 
 
    $scope.countryPlaceholder = 'INPUT TEXT HERE'; 
 
    $scope.countryText = 'I come from ' + $scope.country + '. The best place in the world.' 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app> 
 
    <form ng-controller="ExampleController"> 
 
     <input type="text" class="textbox" name="country" id="country" ng-model="country" placeholder="{{countryPlaceholder}}" /> 
 
     <p>{{'I come from ' + country + '. The best place in the world.'}}</p> 
 
    </form> 
 
</div>

+0

이것은 내가 찾고있는 행동이지만 텍스트를 두 곳으로 설정하는 것을 피하려고했습니다. 그 주위에 어떤 방법이 있습니까? 아니면 그냥 텍스트를 복제해야합니까? –

+0

@MikeYoung No Problem, 가장 먼저 해결할 문제 :-) –

관련 문제