在 emberjs 中使用视图中的操作
Using action in view with emberjs
当我点击提交或带有 emberjs 的按钮时,我将使用操作。
这是模板
<script type="text/x-handlebars" id="login">
<form class="form-horizontal" id="loginForm" >
{{view App.Views.TextField id="username"}}
{{view App.Views.TextField id="password"}}
<input type="submit" value="Login" {{action login this}} />
</form>
</script>
这是视图.js
App.Views.login = Ember.View.create({
templateName: 'login',
controllerBinding: 'App.Controllers.login',
username: '',
password: '',
login: function(){
alert("this is view.js");
}
});
这是控制器.js
App.Controllers.login = Ember.Object.create({
login: function(event){
alert("This is controller.js");
}
});
但是我看不到任何警报消息。我想看到两条消息。
短片
您尝试执行的操作应该使用更ember.js
命名约定来完成一些不同的操作。有关工作示例,请参见此处。
长
您的模板,请注意,我已将App.Views.TextField
更改为简单的input
,这基本上是一个文本字段,Ember.TextField
.我还添加了type="password"
,使密码字段像一个。valueBinding
语句可确保在更改值时,控制器上的相同命名属性也会因数据绑定而更改。
<script type="text/x-handlebars" id="login">
<form class="form-horizontal" id="loginForm" >
{{input id="username" valueBinding="username"}}
{{input type="password" id="password" valueBinding="password"}}
<button class="btn btn-success" {{action login}}>Login</button>
</form>
</script>
通常,如果您有一个名为login
余烬的模板,则会自动为您创建LoginView
和LoginController
。只有当你需要在控制器或视图中放置逻辑时,你才应该自己创建一个,所以余烬会使用它而不是创建一个。因此,由于您不应该将逻辑放在视图中,除了一些与渲染相关的东西之外,它也可以在您的情况下完全省略,因此 ember 将为您实例化一个基本视图。如果您想使用自己的视图,则应按以下方式定义它:
App.LoginView = Ember.View.extend();
这里唯一要考虑的重要一点是,如果您希望视图自动与特定模板一起使用,那么常规命名就是一切。例如,如果您有一个名为 myAwesomePanel
ember 的模板.js则需要在 App
命名空间下有一个名为 MyAwesomePanelView
的视图。Ember.js 将查找App.MyAwesomePanelView
,如果它找到与模板名称对应的模板名称,它将使用它并自动实例化它,因此调用 extend
而不是create
.基本上约定如下: App.<YourCamelCasedTemplateName>View
您的控制器,这次我们创建一个,因为我们确实想要一些逻辑。请注意,对extend
而不是create
余烬的调用也会自动为您实例化它。
App.LoginController = Ember.ObjectController.extend({
username: '',
password: '',
login: function(){
alert("User: "+this.get('username')+" Pass: "+this.get('password'));
}
});
希望这有帮助。
- 无法在mvc视图中使用ajax调用获取操作返回的模型对象列表
- 在 React JS 中,什么时候应该使用存储而不是直接操作视图的状态
- 如何重新加载调用部分视图的操作
- ZF:js 被识别,但在操作视图中不起作用
- 使用参数从视图中调用操作
- Telerik MVC 树视图操作
- 使用knockoutjs操作视图模型
- 剃刀视图中的Javascript url操作
- 主干:如何操作与视图关联的图元之外的图元
- 在视图中未使用Javascript调用控制器操作
- 在Struts2中将参数从视图传递给操作
- 在视图中重定向会破坏原始控制器操作(Yii)
- 使用转义键在余烬文本视图中取消操作
- 如何在操作类中识别两个不同的 JSP 页面按钮?如何基于 JSP 页面视图按钮和查看全部按钮编写条件
- 反应+通量:通知视图/组件操作失败
- Ember.js将视图插入应用程序控制器,但使用另一个控制器进行操作
- 使用其 cid 操作木偶项目视图
- 由代码操作输入时不触发主干视图更改事件
- 从视图中访问另一个操作实例变量
- 如何在不影响AngularJS中原始变量的情况下操作视图值