在Ember.js中获取控制器内的属性

在Ember.js中获取控制器内的属性,ember.js,Ember.js,我是Ember.js的初学者,我想我的问题有一个非常简单的答案,所以请耐心听我说 我尝试在控制器属性和 控制器对应模板中的Ember.TextField中的“value”属性。我已经成功地为控制器中的属性指定了一个特定的初始值,该值反映在Ember.TexField的value属性中,如: js代码: App = Ember.Application.create(); App.IndexController = Ember.ObjectController.extend({

我是Ember.js的初学者,我想我的问题有一个非常简单的答案,所以请耐心听我说

我尝试在控制器属性和 控制器对应模板中的Ember.TextField中的“value”属性。我已经成功地为控制器中的属性指定了一个特定的初始值,该值反映在Ember.TexField的value属性中,如:

js代码:

App = Ember.Application.create();
App.IndexController = Ember.ObjectController.extend({
              aProperty: 1 });
模板:

<script type:"text/x-handlebars" data-template-name="index">
{{view Ember.TextField valueBinding="aProperty"}}
</script>

并且可以使用
App.cueController.get('aProperty')
从控制台检索
aProperty
的值。然而,Ember文档中的所有示例从未创建控制器的具体实例,所以我想知道这是否必要,更不用说Ember对真实应用程序的鼓励了。有什么想法吗?

您应该像这样在调试控制台中查找控制器:

App.__container__.lookup('controller:index').get('aProperty')

由于使用
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu>仅用于调试目的,如果您想在不使用私有
\uuuuuuuuuu

例如:

App = Ember.Application.create({});

App.IndexController = Ember.ObjectController.extend({
  aProperty: 1,
  aPropertyDidChange: function() {
    console.log(this.get('aProperty'));
  }.observes('aProperty')
});
工作


希望它有帮助

使用
\uuuuuu容器\uuuuuuu
只对调试有用,不鼓励在应用程序代码中使用…在容器外手动创建控制器对于与余烬的其余部分的互操作性不是一个好主意。@LukeMelia你完全正确,这是一个快速而肮脏的回答。。。我修改了它,以反映更多的余烬公约,希望它现在更传统:)
App = Ember.Application.create({});

App.IndexController = Ember.ObjectController.extend({
  aProperty: 1,
  aPropertyDidChange: function() {
    console.log(this.get('aProperty'));
  }.observes('aProperty')
});