Gra*_*art 3 ember.js ember-cli
我有这样的形式:
<form {{action 'resetPassword' on="submit"}}>
{{input type="password" value=newPassword placeholder="reset password"}}<br>
{{#if newPassword}}
{{input type="password" value=confirmPassword placeholder="confirm password"}}
{{#if passwordOK}}
<button>Reset</button>
{{/if}}
{{/if}}
</form>
Run Code Online (Sandbox Code Playgroud)
它依赖于可用的resetPassword操作以及passwordOK函数,该函数测试已输入密码并确认匹配.
这都是粉碎,但我想我需要在我的应用程序中多次使用此表单.所以我认为我应该把它变成一个组件.
如何将此表单转换为可重用的组件?
我对如何利用这一大块功能并在整个应用程序中使用它感兴趣.如何打包并重新使用?
可能迟到这个派对,但它可能会帮助别人.
使用Ember CLI创建Ember表单组件的5分钟指南
在项目目录中,转到app> components> password-component.js.在那里,用这个替换代码:
import Ember from 'ember';
export default Ember.Component.extend({
passwordOK: function(){
return this.get('newPassword')===this.get('confirmPassword');
}.property('newPassword','confirmPassword'),
actions: {
resetPassword: function() {
alert(this.get('newPassword'));
}
}
});
Run Code Online (Sandbox Code Playgroud)转到app> templates> components> password-component.在那里,用{替换{{yield}}:
<form {{action 'resetPassword' on="submit"}}>
{{input type="password" value=newPassword placeholder="reset password"}}<br>
{{#if newPassword}}
{{input type="password" value=confirmPassword placeholder="confirm password"}}
{{#if passwordOK}}
{{input type="submit" value="submit"}}
{{else}}
passwords don't match
{{/if}}
{{/if}}
</form>
Run Code Online (Sandbox Code Playgroud)在app> templates> application.hbs中,只需添加以下内容即可添加您刚刚创建的组件:"{{password-component}}"
建立你的项目("ember s")
您的组件应该是可见的.将内容添加到输入字段并单击"提交",应显示刚刚输入的内容.