3

私は Emebr JS のスターター キットを使用しており、{{action hello}} を含む単純なアンカー タグをアプリケーション テンプレートに追加しました。

テンプレートを handlebars プリコンパイラでプリコンパイルしています。これを実行しようとすると、エラーがスローされます。

UnCaught エラー: プロパティ 'action' が見つかりませんでした

以前はember-1.0.pre.jsで同じことを行っていましたが、これは正常に機能していました。しかし、ember の新しいライブラリ ( ember-1.0.0-pre.2.js ) を含めると、このエラーが発生します。

どちらの場合も、handlebars-1.0.rc.1.min.jsを使用しています。

誰でも問題を解決するのを手伝ってくれませんか。私が使用しているハンドルバーとライブラリの詳細情報を以下に示します。

ハンドルバーのプリコンパイラでコンパイルされたテンプレート。アプリケーション.ハンドルバー

<h1>Hello from Ember.js</h1> 
<a {{action hello}}>Say Hello!</a>

私の HTML ページ:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
  <script>window.jQuery || document.write('<script src="js/libs/jquery-1.7.2.min.js"><\/script>')</script>
  <script src="js/libs/handlebars-1.0.0.beta.6.js"></script>
  <script src="js/libs/ember-1.0.0-pre.2.min.js"></script>

  <script src="handlebars/compiled/views.handlebars.js"></script>

  <script src="js/app.js"></script>

views.handlebars.js には、コンパイルされたハンドルバーが含まれています。

App.js:

var App = Ember.Application.create();

App.ApplicationController = Ember.Controller.extend();
App.ApplicationView = Ember.View.extend({
  templateName: 'application'
});

App.Router = Ember.Router.extend({
  root: Ember.Route.extend({
    index: Ember.Route.extend({
      route: '/'
    }),
    hello: function() {
        console.log("Hello and Welcome");
    }
  })
})

App.initialize();
4

2 に答える 2

5

Ember のハンドルバー ビューをプリコンパイルするときは、Handlebars ではなく Ember.Handlebars を使用する必要があります。それが問題かもしれないと思います。

ここでの詳細な議論: Emberjs ハンドルバーのプリコンパイル

于 2012-11-12T17:25:20.497 に答える
1

リンクをありがとう、しかし私はハンドルバーのプリコンパイルの代わりに ember-precompile を使い始めました。ember-precompile はhttps://github.com/gabrielgrant/node-ember-precompileにあります。

このモジュールは、ハンドルバーとエンバーの古いライブラリを使用します。これを実行する前に、ライブラリを最新バージョンにアップグレードしてから実行する必要があります。ライブラリへのパスは「index.js」で変更できます。最新のライブラリを追加し、「index.js」を変更するとうまくいきました。

于 2012-11-13T13:02:41.203 に答える