5

私はAngularjsとSlimで遊んでいますが、よりクリーンな構文を考え出す方法を見つけようとしています.

私はやってみたいです:

td {{content.name}}
td {{content.body}}
td {{content.owner}}

しかし、それは私にエラーを与えます。{が HTML 属性のグループ化に使用されているためと考えられます。これを次のように変更する必要がありました。

td
  | {{content.name}}
td
  | {{content.body}}
td
  | {{content.owner}}

これを行うためのよりクリーンな方法はありますか?

4

5 に答える 5

4

よりクリーンだと思うかどうかはわかりませんが、すべての属性を括弧で囲むことができます。

td() {{content.name}}
td(otherattr=2 thisattr=3) {{content.body}}
td() {{content.owner}}
于 2013-07-20T01:27:10.527 に答える
3

Slim gem自体にパッチを当てることになりました。2行だけ変更。

https://github.com/brennancheung/slim/tree/angularjs_supportで見ることができます

以下を使用して Rails プロジェクトに含めることができます。

gem 'slim', :git => 'git://github.com/brennancheung/slim.git', :branch => 'angularjs_support'
于 2013-07-29T22:57:59.380 に答える
1

これは古い質問であることは知っていますが、今では完璧な解決策があります。最新のスリムはカスタムattr_delimsオプションをサポートしています。いつ追加されたのかわかりませんが、v2.0.3 にはあります。コマンドラインでは、次を使用できます。

slimrb -o "attr_delims={'(' => ')', '[' => ']'}" <file>

または、 を使用する場合はgulp-slim、次のように記述できます。

.pipe(slim({
  pretty: true,
  options: "attr_delims={'(' => ')', '[' => ']'}"
}))

こちらのドキュメントを参照できます。

于 2014-11-01T11:45:06.830 に答える
0

他のバリアントでは、まだ満足していませんが、次のことを行います。

td ng-bind="content.name"
td ng-bind="content.body"
td ng-bind="content.owner"

{HTML属性のグループ化に使用しないように、スリムをカスタマイズすることに傾いています。

于 2013-07-19T23:34:19.980 に答える