Protractor testing: How to set the value of text elements in a login form?

I am writing tests in Protractor for an Angular app. I want to fill out a login form and submit it.

How can I do this? I have got this far, but I don't know how to set the value of the email and password fields.

describe('The dashboard', function() {
  ptor = protractor.getInstance();

  beforeEach(function() {
    ptor.get('#/dashboard');
    var email = ptor.findElement(protractor.By.model('email'));
    var password = ptor.findElement(protractor.By.model('password'));
    var submit = ptor.findElement(protractor.By.tagName('button'));
    // Fill out the form?
    submit.click();
  });

  it('has a heading', function() {
    heading = ptor.findElement(protractor.By.tagName('h1'));
    expect(heading.getText()).toEqual('My Dashboard');
  });
});

Just for the benefit of anyone who found this via Google, the answer is:

email.sendKeys('[email protected]');
password.sendKeys('mypassword');

you can use

email.clear().sendKeys('[email protected]');
password.clear().sendKeys('mypassword');

In addition to shruti and Richard,

To ensure the input is empty or cleared, use the clear method which returns a Promise. Resolve the promise with sendKeys method on your input. This is helpful if you have pre-populated your input with default values.

Async/Await:

async fillInEmail() { 
  await email.clear(); 
  email.sendKeys('[email protected]'); 
}
async fillInPassword() { 
  await password.clear(); 
  password.sendKeys('mypassword'); 
}

ES6:

email.clear().then(() => {
    email.sendKeys('[email protected]');
});

password.clear().then(() => {
    password.sendKeys('mypassword');
});

Before ES6:

email.clear().then(function() {
    email.sendKeys('[email protected]');
});

password.clear().then(function() {
    password.sendKeys('mypassword');
});