它是全局聲明的,所以Ember和Handlebars可以解析綁定。
在用於示例的視圖的情況下,它必需的,以便它可以在把手模板經由view
助手被實例:
把手:
<script type="text/x-handlebars" >
{{#view MyView}}
my view's template
{{/view}}
</script>
的JavaScript:
MyView = Ember.View.extend({});
下面的例子不工作時,控制器與var
聲明中宣佈,見http://jsfiddle.net/pangratz666/uzsd6/:
把手:
<script type="text/x-handlebars" >
{{controller.name}} - {{secondController.name}}
</script>
的JavaScript:
var controller = Ember.Object.create({
name: 'my name'
});
var secondController = Ember.Object.create({
nameBinding: 'controller.name'
});
如果t他控制器宣佈全球可用的對象,在這種情況下,App
命名空間中,綁定可以解決的,看到http://jsfiddle.net/pangratz666/kUmje/:
把手:
<script type="text/x-handlebars" >
{{App.controller.name}} - {{App.secondController.name}}
</script>
的JavaScript:
App = Ember.Application.create({});
App.controller = Ember.Object.create({
name: 'my name'
});
App.secondController = Ember.Object.create({
nameBinding: 'App.controller.name'
});
你應該看看Emberist的博客約Naming Conventions在Ember.js
。
在文檔中,它的存在不會讓讀者在開始時與「Ember.Namespace」和「Ember.Application」的概念相混淆。所以這可能是一個不好的例子。一般來說,您想要在全局可用名稱空間內聲明您的類和實例,請參閱我的答案以獲得進一步解釋。 – pangratz