0

ラムダを使用すると、次のことに気付きます。

{
  "name": "Willy",
  "wrapped": function() {
    return function(text) {
      return "<b>" + render(text) + "</b>"
    }
  }
}

2 番目の引数 ( に加えてtext) が渡されます。この 2 番目の引数は関数です。

function (template) {
    return render(template, scope);
}

テンプレートを指定すると(初期入力jsonオブジェクトを使用して)htmlを返します。

したがって、ラムダを次のようにするとします。

"wrapped": function() {
  return function(text, func) {
    ....
}

func("<div>{{name}}</div>")json データ オブジェクトの 'name' プロパティに含まれていた内容が入力された div を表す html を返すことが期待 されます。

ただし、func("{{.}}")機能しません。最初の入力オブジェクトを表すオブジェクトを期待します。

代わりに STRING を取得し"[object Object]"ます。使用しようとするJSON.parseと、「予期しないトークン o」というエラーが表示されます。

4

1 に答える 1

1

JSON として解析しようとしているコードは、実際には JSON ではありません。これは単なる JavaScript オブジェクト リテラルです。{{.}}したがって、テンプレートに入れようとすると[object Object]、それがオブジェクトの文字列表現であるため、正しく取得されます。

于 2012-05-12T02:39:32.653 に答える