Membuat ng-model Otomatis Kapital

Auto Capitalize, begitulah saya menyebutnya. Sebenarnya metode ini hanya meng-uppercase karakter pertama saja. Kondisi di mana ingin menampilkan nama seseorang yang default-nya lowercase semua, dan ingin membuat setiap karakter pertama menjadi uppercase atau menjadi huruf kapital. Dan by the way, filter ini sering saya pakai. Contoh:

{
    name : 'muhammad chairul umam',
    gender : 'male'
}

saat memanggil name dan mem-binding-kan data tersebut ke model pada HTML, tentu hasil output-nya akan apa adanya.

JS:

angular.module('myApp').controller( 'SomeController', [
    '$scope', '$http',
    function($scope, $http) {

    $scope.userData = {
        name : 'muhammad chairul umam',
        gender : 'male'
    };

        /*
         *  STOP YOUR CODE HERE
         */
    }]
);



HTML:

<div>
    {{ userData.name }}
</div>



Output:

muhammad chairul umam

Maka, buat satu filter untuk yang akan dipakai untuk membantu kerja program:

angular.module('myApp').filter('capitalize', function() {
    return function(input, all) {
        var reg = (all) ? /([^\W_]+[^\s-]*) */g : /([^\W_]+[^\s-]*)/;
        return (!!input) ?
            input.replace(reg, function(txt){
                return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
                }) :
            '';
    }
});

Silakan perhatikan dua parameter input dan all. parameter pertama adalah model pada HTML dan paremeter kedua digunakan saat ingin meng-uppercase semua karakter pertama dalam sebuat kalimat dalam model. bisa dipahami nggak bahasa saya? 😀

Penggunaannya cukup mudah:

JS:

angular.module('myApp').controller( 'SomeController', [
    '$scope', '$http',
    function($scope, $http) {

    $scope.userData = {
        name : 'muhammad chairul umam',
        gender : 'male'
    };

        /*
         *  STOP YOUR CODE HERE
         */
    }]
);



HTML:

<div>
    {{ userData.name | capitalize }}
</div>



Output:

Muhammad chairul umam

Perhatikan output. Penggunaan filter capitalize secara default hanya akan meng-uppercase huruf pertama pada kata pertama

JS:

angular.module('myApp').controller( 'SomeController', [
    '$scope', '$http',
    function($scope, $http) {

    $scope.userData = {
        name : 'muhammad chairul umam',
        gender : 'male'
    };

        /*
         *  STOP YOUR CODE HERE
         */
    }]
);



HTML:

<div>
    {{ userData.name | capitalize : true }}
</div>



Output:

Muhammad Chairul Umam

Perhatikan output. Penggunaan filter capitalize dengan parameter true akan meng-uppercase huruf pertama pada setiap kata.

Demo:

Mudah bukan?

Feel free to ask me or comment 🙂

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *