組件生成多個不同的操作以指定不同的事件。您需要將事件的名稱指定為sendAction()方法的第一個參數(shù)。
{{user-form submit="action1" cancel="action2"}}
<!DOCTYPE html> <html> <head> <title>Emberjs Sending Multiple Actions</title> <!-- CDN's --> <script src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/3.0.1/handlebars.min.js"></script> <script src="https://code.jquery.com/jquery-2.1.3.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/ember.js/1.10.0/ember.min.js"></script> <script src="https://builds.emberjs.com/tags/v1.10.0-beta.3/ember-template-compiler.js"></script> <script src="https://builds.emberjs.com/release/ember.debug.js"></script> <script src="https://builds.emberjs.com/beta/ember-data.js"></script> </head> <body> <script type="text/x-handlebars" data-template-name="index"> <h1>Create New User</h1> {{user-form submit="createUser" cancel="cancelUserCreation" }} </script> <script type="text/x-handlebars" data-template-name="components/user-form"> <form {{action "submit" on="submit"}}> <p>Name {{input type="text" value=fname}}</p> <button {{action "cancel"}}>Cancel</button> <input type="submit" value="Submit User Name"> </form> </script> <script type="text/javascript"> App = Ember.Application.create(); App.IndexController = Ember.ObjectController.extend({ actions: { //calling the multiple actions //action for creating user createUser: function(user) { document.write("Created user: " + user.fname); }, //action for cancle cancelUserCreation: function() { document.write("Canceled user creation"); } } }); App.UserFormComponent = Ember.Component.extend({ actions: { submit: function() { //simply addind an additional parameters to the sendAction() method as submit this.sendAction('submit', { fname: this.get('fname'), }); }, cancel: function() { //simply addind an additional parameters to the sendAction() method as cancel this.sendAction('cancel'); } } }); </script> </body> </html>
讓我們執(zhí)行以下步驟,看看上面的代碼如何工作:
將上面的代碼保存在comp_mult_actn.html文件中
在瀏覽器中打開此HTML文件。
更多建議: