angular.js - angular-translate Adakah terdapat cara yang baik untuk mengeluarkan istilah secara bersyarat?
漂亮男人
漂亮男人 2017-05-15 16:49:10
0
4
712

Baru-baru ini, produk syarikat perlu menyokong sokongan berbilang bahasa, dan terjemahan sudut digunakan untuk melakukannya, yang pada asasnya lancar.

Kemudian saya terjumpa beberapa templat yang berkata:

{{gender ? '男' : '女'}}

Jelas sekali, filter tidak boleh digunakan secara langsung pada masa ini, ia ditulis semula menggunakan ngIf, serupa dengan ini:

<span ng-if="gender">{{'common.male' | translate}}</span>
<span ng-if="!gender">{{'common.female' | translate}}</span>

Tetapi bagaimana jika anda tidak mahu tambahan span? Kadang-kadang saya jengkel dengan aspek Angular ini Anda perlu membersihkan beberapa tag yang tidak berguna untuk beberapa arahan. Apakah pendapat anda?

漂亮男人
漂亮男人

membalas semua(4)
淡淡烟草味
<span>{{ (gender?'common.male':'common.female') | translate}}</span>
黄舟

Poster mungkin cuba menggunakan kaedah pengawal untuk mencapainya, seperti:

<!-- template file -->
<span ng-bind="showGender(gender)"></span>
// angular controller
app.controller('MyCtrl', function ($scope, $filter)) {
    $scope.showGender = function (gender) {
        return $filter('filter_name')(gender);
    }
};

Dengan cara ini, walaupun redundansi dalam html dikurangkan, jumlah kod meningkat.

为情所困

Orang yang menulis ini mestilah pengetua!

Peter_Zhu

Sangat mendalam

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan