問題タブ [grunt-ember-templates]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ember.js - 指定された data-template-name に一致するテンプレート名は何ですか?
grunt-ember-templatesを使用してテンプレートをプリコンパイルしています。このツールは、予想どおり、私のテンプレートをEmber.TEMPLATES
配列に入れています。の構成を微調整していますgrunt-ember-templates
。Ember.TEMPLATES
そのために、配列で予想されるキーは何かを知りたいです。このテンプレートがあるとしましょう:
現在、このテンプレートは というファイルapp/templates/phones_index.hbs
にあり、grunt-ember-templates
コンパイル済みのテンプレートを に入れてEmber.TEMPLATES["app/templates/phones_index"]
いますが、これは間違っています。
の予想されるキーは何data-template-name="phones/index"
ですか?
javascript - 事前にコンパイルされたテンプレートで最新の ember を使用することはできません
最新の ember スターター キットをインストールしました。それは持っています:
- Ember.VERSION : 1.0.0-rc.5
- ハンドルバー.バージョン: 1.0.0-rc.4
- jQuery.バージョン: 1.9.1
grunt-contrib-handlebars@0.5.9
テンプレートをプリコンパイルするために使用しています (これは利用可能な最新バージョンです)。そのパッケージに含まれているハンドルバーのバージョンはわかりませんが、アプリケーションの起動時に次のエラーが表示されます。
私は別のハンドルバーのランタイム (バージョン ) を読み込もうとさえし1.0.0-rc.3
ましたが、ember はそれについて満足していません:
したがって、ember には 1.0.0-rc.4 が必要ですが、このバージョンで利用できる grunt プリコンパイラはありません。キャッチ22?
コンパイル済みのテンプレートを削除する必要がありますか? Emberをアップグレードするたびにこの中断が発生するのは非常に面倒です...
javascript - Ember、Handlebars、Contrib-Ember-Templates がモバイル ブラウザーで不正な形式のテンプレートを生成する
Gruntjs プラグイン contrib-ember-templates を使用すると、モバイル ブラウザーで表示すると正しくない結果が生成されます。
生成されたテンプレート
ただし、ライブ デバッグを介してテンプレートを編集すると、望ましい結果が得られます。
希望のテンプレート
追加情報
この問題は、縮小された EmberJS (リリース ビルド) を使用している場合にのみ発生します。
この問題は、デスクトップ ブラウザーでは発生しません。
この問題は、コンソール メッセージを生成しません。
grunt --verbose を実行しても、エラー/警告メッセージは表示されません。
技術スタック
NodeJS - v0.10.12
うなり声-cli v0.1.9
うなり声 v0.4.1
grunt-contrib-templates - 0.4.10
JQuery - v1.10.2
これらは、contrib-grunt-template とフロントエンド クライアント アプリケーションによって使用されます。
EmberJS - v1.0.0-rc.6-15-gfe89337 (縮小版)
ハンドルバー - 1.0.0
編集:
この問題は、ビューがテンプレートで使用されている場合にのみ発生します。
コンパイルされていないテンプレート
インデックス ビュー
編集:
これを、特にテンプレートのこの行に絞り込みました。
ember.js - サブフォルダー内で定義されたコンポーネント テンプレートは、grunt-ember-templates を使用してそれらをコンパイルするときにエラーを引き起こします
私たちは、ember コンポーネントに大きく依存しています。最初は、「templates/components」フォルダー内に記述されたコンポーネントに関連付けられたすべての hbs テンプレートがありましたが、コンポーネントの数が増えているため、より多くの構造を提供し、コンポーネント フォルダー内のサブフォルダー内のテンプレートを定義したいと考えました。そうするとき、emberは不平を言います
[SUBFOLDER] 名前空間で [XYZ] コンポーネントを探していますが、名前空間が見つかりませんでした
私のコンパイル済みテンプレートは次のようになります。
しかし、次の変更を加えればうまくいきます:
私が今持っている回避策は、このように gruntfile を変更することです
これが残り火なのか他の何かなのかはわかりません。しかし、より良い解決策を期待して、そこに質問を出しています。
更新 コンポーネントのロード方法が原因で問題が発生したようです。基本的に、次のように渡すパラメーターに基づいてコンポーネントをロードするヘルパー関数を使用しています。
Ember.Handlebars.helpers を確認したところ、コンポーネント内の任意のフォルダー内で定義されたコンポーネントがないようです。
templates - キャッチされないエラー: テンプレートはハンドルバーの古いバージョンでプリコンパイルされました
grunt-ember-templates
フロントエンドの依存関係を管理し、ハンドルバー テンプレートをプリコンパイルするために Bower を使用しています。
の依存関係は次のbower.json
とおりです。
...そしてでpackage.json
:
ただし、Ember アプリケーションをコンパイルして実行すると、次のエラーが発生します。
Assertion failed: Ember Handlebars requires Handlebars version 1.0 or 1.1, COMPILER_REVISION expected: 4, got: 5 - Please note: Builds of master may have other COMPILER_REVISION values.
Uncaught Error: Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version (>= 2.0.0) or downgrade your runtime to an older version (<= 1.0.rc.2).
そして、これらはバージョンです:
ご覧handlebars
のとおり、依存関係として明示的に言及されていませんが、Ember によって解決されています。しかし、どういうわけか、新しい (互換性のない) バージョンに解決されます。
のバージョンを修正するにはどうすればよいhandlebars
ですか?
ember.js - Grunt でコンパイルした Ember.js テンプレートを HTML ファイルのどこに配置すればよいですか?
私は単純な Ember.js と Express アプリに取り組んでおり、これまですべてのテンプレートがindex.html
ファイルに含まれていました。Grunt をプリコンパイル テンプレート以外に使用するのはこれが初めてです。(私はGrunt-Ember-Handlebarsを使用してコンパイルに取り組んでいます)
すべてのテンプレートをフォルダーに移動し、同じフォルダーhandlebars
にコンパイルします。templates.js
私の質問はこれです: templates.js
HTML ファイルにリンクするスクリプト タグをどこに含めればよいですか?
すべてのスクリプトをレイアウトする方法は次のとおりです。
私のtemplates.js
ファイルへのパスは正しいので、問題はありません。ただし、常に次のエラーが返されます。
アサーションに失敗しました: 「インデックス」テンプレートまたはビューが見つかりませんでした。
後で含める必要があることがわかっている唯一のファイルは、私のember.js
ファイルです。それ以外は、アプリ内のファイルの前後に含めても、エラー出力に違いはありません。
事前に助けてくれてありがとう!
編集: ここに私のGruntfileがあります:
ember.js - Ember.js:テンプレートでモデルの一部だけを表示するには?
テンプレートでは:
モデル内のすべてのアイテムが表示されます。
しかし、インデックスに依存する一部のアイテムのみを表示したい(例: index%2==0 の場合にアイテムを表示)。
それについて何か考えはありますか?ありがとう