KO Use of Template and MailTo Links

http://stackoverflow.com/questions/18343930/links-and-mailto-in-knockout/18344010#18344010

by lifetimelearner

HTML

<div data-bind="template: { name : 'customerSearchDisplayTemplate' }"></div>

<script type="text/template" id="customerSearchDisplayTemplate">
    <tr>
        <td class = "hiddenId"><span data-bind="text: customerSearchID"/></td> 
        <td><span data-bind="text: fullName" /></td>
        <td>
            <a data-bind="text: primaryEmail, attr: { href : 'mailto:'+primaryEmail() }" />
        </td>
        <td>
            <a data-bind="text: secondaryEmail, attr: { href : 'mailto:'+secondaryEmail() }" />
        </td>
        <td><span data-bind="text: homePhone" /></td>
        <td><span data-bind="text: workPhone" /></td>
        <td><span data-bind="text: mobilePhone" /></td>
        <td><span data-bind="text: lastLogonDate" /></td>
        <td><span data-bind="text: wsNotes" /></td>            
    </tr>
</script>

JavaScript

function testViewModel() {
    var self = this;
    self.customerSearchID  = ko.observable();
    self.fullName = ko.observable();
    self.primaryEmail = ko.observable();
    self.secondaryEmail  = ko.observable();
    self.homePhone  = ko.observable();
    self.workPhone  = ko.observable();
    self.mobilePhone  = ko.observable();
    self.lastLogonDate  = ko.observable();
    self.wsNotes  = ko.observable();    
};

var viewModel = new testViewModel();
ko.applyBindings(viewModel);

viewModel.customerSearchID('1');
viewModel.fullName('Testy McTesterson');
viewModel.primaryEmail('[email protected]');
viewModel.secondaryEmail('[email protected]');
viewModel.homePhone('888-888-8888');
viewModel.workPhone('867-5309');
viewModel.mobilePhone('123-456-7890');
viewModel.lastLogonDate('yesterday');
viewModel.wsNotes('Notes');