角度绑定输入值到另一个var

时间:2017-09-13 15:33:38

标签: javascript angularjs

感觉我今天有点脑死亡。

我有一个字符串和一个输入。我需要将输入值拉到字符串的中间。但是我希望它被绑定,因此当您键入输入时,您可以在字符串中看到它。

一种解决方案是将字符串溢出然后我可以做类似的事情。

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

但是我可能会遇到这样一种情况,即弦乐需要通过许多变形,因此这样做可能会很乏味。见下面的例子。

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

我觉得可能有另一种更简单的方法可以做到这一点,但似乎无法找到一个好的解决方案。

编辑:对不起,我应该提一下,我需要将新字符串保存回范围var。有些人已经制定了一些有效的解决方案,但我试图避免将文本设置为两个位置。如果它只在一个地方定义,那么对它进行更新会更简洁,更容易。

2 个答案:

答案 0 :(得分:2)

如果您需要控制器中的连接字符串,则可以设置$watch

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

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

});

任何时候$scope.country获取新值,都会为$scope.fullCountryString创建一个新值。因此,您可以根据需要将视图绑定到fullCountryString

答案 1 :(得分:0)

&#13;
&#13;
function ExampleController($scope) {
    $scope.countryPlaceholder = 'INPUT TEXT HERE';
    $scope.countryText = 'I come from ' + $scope.country + '. The best place in the world.'
}
&#13;
<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>
&#13;
&#13;
&#13;