ember.js - 直接在 Controller 上实现的 Action 处理程序已被弃用 - 如何纠正这个问题?

标签 ember.js

我刚刚从 ember.js RC7 升级到 RC8,发现一个简单的模板(如下所示)会抛出一个弃用的警告

"Action handlers implemented directly on controllers are deprecated"


{{input class="firstName" type="text" placeholder="first name" value=firstName }}                                      
{{input class="lastName" type="text" placeholder="last name" value=lastName }}                                         
<button class="submit" {{action addPerson}}>Add</button>                                                               
<br />                                                                                                                 
<table>                                                                                                                
{{#each person in controller}}                                                                                         
<tr>                                                                                                                   
  <td class="name">{{person.fullName}}</td>                                                                            
  <td><button class="delete" {{action deletePerson person}}>Delete</button></td>                                       
</tr>                                                                                                                  
{{/each}}                                                                                                              
</table>

我应该如何修改上述模板来纠正这个问题?

最佳答案

看来我只需要 give the PR改变了这一点的外观:)

在我的 Controller 中,我只需要在这样的操作下移动 addPerson/deletePerson

App.PeopleController = Ember.ArrayController.extend({                                                                  
    actions: {                                                                                                         
        addPerson: function() {                                                                                        
            var person = {                                                                                             
                firstName: this.get('firstName'),                                                                      
                lastName: this.get('lastName')                                                                         
            };                                                                                                         
            App.Person.add(person);                                                                                    
        },                                                                                                             
        deletePerson: function(person) {                                                                               
            App.Person.remove(person);                                                                                 
        }                                                                                                              
    }                                                                                                                  
});

关于ember.js - 直接在 Controller 上实现的 Action 处理程序已被弃用 - 如何纠正这个问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18511458/

相关文章:

ember.js - 使用 Ember 中的 Controller 存储用户对调查问卷的回答

node.js - 覆盖 ember 中的 Node 包

javascript - Ember css 不起作用 + 如何创建两个样式表

ember.js - 在输入帮助器中绑定(bind)数据属性

Javascript框架困惑

javascript - 从外部访问 Ember 应用程序实例 (cordova)

javascript - Controller 的 emberJS 最佳实践

javascript - 断言失败: `AdapterError` expects json-api formatted errors array

json - 将 JSON 转换为适合 RESTAdapter EmberJS 的格式

ember.js pushObject 不推送