2017-01-24 2 views
-2

Я пытаюсь сделать простую двустороннюю привязку, но проверяю и обновляю текст ввода, если он содержит две строки слов. Например, если вход Comedy Movies затемКак использовать функцию замены с помощью углового

Comedy Movies ----> comedy_movies

Я сделал это с помощью JQuery, как

var str = $('#item').val() 
if (str.match(/^[a-z\.]+ [a-z]+/i)) { 
    str = str.replace(/\s+/g, '_').toLowerCase(); 
} 

Но не знаете, как сделать это с помощью угловой. Не могли бы вы дать мне знать, как это исправить? Благодаря

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.1/angular.min.js"></script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<div ng-app> 
 
    Item: 
 
    <input type="text" ng-model="name" id="item"/> 
 
     <br /> 
 
     <br /> 
 
    <div>{{name}}</div> 
 
</div>

ответ

1

Вы можете привязку с помощью ng-bind функции, которая содержит вам код - см демку ниже:

angular.module('app', []).controller('ctrl', function($scope) { 
 

 
    $scope.name = 'Comedy Movies'; 
 

 
    $scope.getString = function() { 
 
    var str = $scope.name; 
 
    if (str.match(/^[a-z\.]+ [a-z]+/i)) { 
 
     str = str.replace(/\s+/g, '_').toLowerCase(); 
 
    } 
 
    return str; 
 
    } 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.1/angular.min.js"></script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<div ng-app="app" ng-controller="ctrl"> 
 
    Item: 
 
    <input type="text" ng-model="name" id="item" /> 
 
    <br /> 
 
    <br /> 
 
    <div ng-bind="getString()"></div> 
 
</div>

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