1

ミックスインを動的に変更するにはどうすればよいですか。次のようにlessファイルを呼び出したいと思います:

.sprite-resize(facebook);

次に、ミキシングを次のようにセットアップしようとしています。

.sprite-resize(@file) {
  @ret: '@sprite-retina-@{file}';
  @norm: '@sprite-@{file}';
  .sprite-ret(@ret);
  .sprite-norm(@norm);
}

.sprite-ret(@ret) {
    @sprite-image: ~`"@{ret}".split(', ')[8].slice(1, -2)`;
    background-image: url(@sprite-image);
}

.sprite-norm(@norm) {
    .lt-ie9 & {
      @sprite-image: ~`"@{norm}".split(', ')[8].slice(1, -2)`;
      background-image: url(@sprite-image);
    }
}
// The @sprite- and @sprite-retina values are automatically generated for me by a grunt plugin: "grunt-spritesmith": "~1.23.0"
@sprite-facebook: 425px 142px -425px -142px 24px 24px 453px 410px '/@{images-dir}/spritesheet-icons159.png';

@sprite-retina-facebook: 25px 147px -25px -147px 24px 24px 209px 189px '/@{images-dir}/spritesheet-icons-retina159.png';

しかし、「undefined のメソッド 'slice' を呼び出せません」のようにビルドするとエラーが発生し続けます。

「facebook」のような 1 つの名前を呼び出して、ミックスインの網膜バージョンと非網膜バージョンの両方を実行する方法はありますか?

4

0 に答える 0