2016-02-01 2 views
4

Как установить входное значение без первой буквы ng-модели. Я не хочу менять сама модель. Просто содержимое ввода без первой буквы.AngularJs ng-model substr

<input type="text" ng-model="myVal" > 

и JS

$scope.myVal = 'Hello'; 

Wanted результат: ELLO

ответ

3

Предполагая, что вы не хотите два способа данных bindin вы можете использовать значение вместо нг-модель

<input type="text" value="{{myVal.substr(1)}}" > 

Если вы хотите двухстороннюю привязку данных, используя SUBSTR на модельном заявлении не имеет смысла.

+1

input use ng-model – TeodorKolev

+0

Дополнительная информация: это не отношение к этому вопросу, но если вы хотите отображать только 10 первых символов, используйте этот текст

2

Есть 2 модели и использование нг-изменения в вашем входе, чтобы обновить оригинальную модель, как изменить модель ввода.

angular.module('myApp',[]).filter('myFilter',function(){ 
 
    return function(input){ 
 
    input = input.substring(1,input.length); 
 
    return input; 
 
    }; 
 
    }) 
 
.controller('myController',function($scope,$filter){ 
 
    $scope.myValObj = "Hello"; 
 
    $scope.myValObj2 = $filter('myFilter')($scope.myValObj); 
 
    $scope.updateOriginal = function(){ 
 
    $scope.myValObj = $scope.myValObj[0] + $scope.myValObj2; 
 
    } 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="myApp" ng-controller="myController"> 
 
    <input type="text" ng-model="myValObj2" ng-change="updateOriginal()"/> 
 
<br> 
 
    Original Model: {{myValObj}} 
 
<br> 
 
    Model For Input: {{myValObj2}} 
 
</div>

+0

nope. Я не хочу иметь 2 модели. – TeodorKolev

+0

. Вы открыты для использования css aproach? вы можете переместить текст на вкладке слева, чтобы первая буква не была видна, но вам нужно убедиться, что ваш шрифт моноширин. Или поместите текст с фильтром/одним символом поверх вашего ввода с белым цветом, чтобы покрыть первую букву. И затем функция ng-change отслеживает ввод и не позволяет удалить последнюю букву, поэтому он будет вставлять последний символ, если будет input.lenght == 0. – Urielzen

Смежные вопросы