我在视图中获取更新值时遇到问题。我认为 valueBinding 无效
<script type="text/x-handlebars" >
{{#view App.Test }}
<label>Name:</label>
{{view Ember.TextField placeholder="username" valueBinding="view.name"}} </br> </br>
{{/view}}
</script>
App.Test = Ember.View.extend({
name: null,
submit: function(event) {
// event.preventDefault();
console.log(this.get('name'));
}
})
当提交调用函数时, console.log(this.get('name')); allways显示NULL值,即使在textfiled中键入了值。
答案 0 :(得分:2)
由于您已经在块助手中,因此不需要使用“view.name”进行绑定,但是在应用程序由路由器&amp ;;进行初始化的情况下。视图连接到outlets
,您可能需要使用“view.name”来引用视图内的属性,例如
基本应用设置
MyApp = Ember.Application.create();
MyApp.Router = Ember.Router.extend({
root: Ember.Route.create({
index: Ember.Route.create({
route: '/',
redirectsTo: 'home',
home: Ember.Route.create({
route: '/home',
connectOutlets: function(router){
router.get('applicationController').connectOutlet('home');
}
})
})
})
});
MyApp.ApplicationView = Ember.View.extend({
templateName: 'application'
})
MyApp.HomeView = Ember.View.extend({
templateName: 'home',
name: 'TheName'
})
MyApp.HomeController = Ember.Controller.extend({
name: "Joey"
})
<script type="text/x-handlebars" data-template-name="application">
{{outlet}}
</script>
<script type="text/x-handlebars" data-template-name="home">
{{view.name}} I am from Home View
{{name}} I am from the Home Controller
</script>
正如您所看到的,在这种情况下,当您执行{{name}}
时,它会在控制器中查找属性。如果您想使用视图中的属性,则需要使用{{view.name}}
Fiddle