私のバックボーンビューにテンプレートを使用しようとしています。私はunderscore.templateで実行しようとしました。問題は、クロム拡張のmanifest_version 2にいくつかのセキュリティ制限があるためです。なぜなら、インラインブロックはもう許可されないからです。この小さな例では、テンプレートを読み込んでレンダリングしようとしています。マニフェストバージョン2のChrome拡張機能でBackbone.jsでテンプレートを使用する方法
未知のエラー:このコンテキストでは、文字列からのコード生成が許可されていません。
私はHandlebars.jsとテンプレートを使って自分のhtmlファイルにも書きました。通常のブラウザウィンドウで動作します。しかし、それはクロムの延長としてではありません。
したがって、manifest_version 2のchrome拡張でbackbone.jsを含むテンプレートを使用するにはどうすればよいですか?アンダースコアで
(動作しない):ハンドルバーと
define [
'jquery'
'backbone'
'lib/facade'
'text!templates/loginTemplate.js'
],
($, Backbone, facade, LoginTemplate) ->
'use strict'
class LoginView extends Backbone.View
tagName: 'div'
events: {
}
initialize: (options) ->
@el = options.el
render: ->
console.log 'LoginView: render()'
$(@el).html(_.template(LoginTemplate, {}))
(動作しない):index.htmlをで
テンプレート:
<!-- templates -->
<script id="loginTemplate" type="text/x-handlebars-template">
<form class="form-horizontal">
<fieldset>
<legend>Login</legend>
<div class="control-group">
<label class="control-label" for="email">Email:</label>
<div class="controls">
<input type="text" class="input-xlarge" id="email" name="email">
</div>
</div>
<div class="control-group">
<label class="control-label" for="password">Passwort:</label>
<div class="controls">
<input type="password" class="input-xlarge" id="password" name="password">
</div>
</div>
<div class="form-actions">
<button type="submit" class="btn btn-primary">Login</button>
</div>
</fieldset>
</form>
</script>
と私の見解で:
define [
'jquery'
'backbone'
'lib/facade'
],
($, Backbone, facade) ->
'use strict'
class LoginView extends Backbone.View
tagName: 'div'
events: {
}
initialize: (options) ->
@el = options.el
render: ->
console.log 'LoginView: render()', $("#loginTemplate")
$(@el).html(Handlebars.compile($("#loginTemplate").html()))
しかし、それは私ができなかったことを意味します。サーバーからコレクションのデータを取得し、実行時にコレクションのビューを動的に構築できますか?編集:さて、今私は理解します。 =) – DerMambo