我的index.html说:
<script type="text/x-handlebars" data-template-name="loggedout">
<label>Username: </label>{{view Ember.TextField placeholder="your username" valueBinding="App.LoggedoutController.username"}}<br />
<label>Password: </label>{{view Ember.TextField placeholder="your password" valueBinding="App.LoggedoutController.password" type="password"}}<br />
<br /><button {{action login}}>Login</button>
</script>
操作进入我的路由器,重定向到我的控制器
App.LoggedoutController = Ember.Controller.extend({
username: '',
password: '',
isError: false,
tryLogin: function() {
console.log("InController: launched");
var username = this.get("username");
console.log("Check:" + username);
....
但是检查是空的。
答案 0 :(得分:2)
如果你在路由器中调用“connectOutlet”,那么你不必担心App.loggedOutController位(从MVC的角度来看,最好尽可能地将“App。”保留在模板之外)
loggedOut: Ember.Route.extend
route: '/signin'
connectOutlets: (router) ->
router.get("applicationController").connectOutlet 'loggedOut'
然后在你的模板中你可以简单地:
{{view Ember.TextField placeholder="your username" valueBinding="username"}}
答案 1 :(得分:1)
valueBinding中的路径App.LoggedoutController.username是错误的。使用App.LoggedoutController,您将使用Ember.Controller.extend()引用已定义的类。您可能在代码中的某处使用过App.intialize()。这会导致Controller由框架实例化。然后,您可以使用路径App.router.loggedoutController检索它。
请记住:实例的名称始终以小写字母开头。课程总是大的。
所以解决方法是:使用valueBindung =“App.router.loggedoutController.username”
编辑:您的小提琴不起作用,因为您没有链接所需的ember库。在“添加资源”中查看左侧。在那里你必须为Ember和Handlebars JS文件指定正确的URL。
答案 2 :(得分:1)
问题在于camelCasing&amp;使用router
关键字,你没有路由器int绑定...
你用过
App.outController.username
而不是App.router.outController.username
这是工作fiddle