app.js
var myapp = angular.module("myAngularMVC",[]);
myapp.controller("myAngularMVCController",function($scope)
{
$scope.fetch = function(contactName)
{
var wh = new SObjectModel.contact();
wh.retrieve({where: {Name: {eq: contactName }}}, function(err, records, event)
{
if(err)
{
alert(err.message);
}
else
{
var ul = document.getElementById("contactsList");
ul.innerHTML = '';
records.forEach(function(record)
{
var whText = record.get("Name");
whText += " -- ";
whText += record.get("Phone");
var li = document.createElement("li");
li.appendChild(document.createTextNode(whText));
ul.appendChild(li);
});
}
});
};
});
Visualforce Page
<apex:page>
<script src="{!URLFOR($Resource.angulardemo,'vendor/angular.min.js')}"/>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet"/>
<script src="{!URLFOR($Resource.angulardemo,'app/app.js')}"/>
<div ng-app="myAngularMVC">
<apex:remoteobjects>
<apex:remoteobjectmodel fields="Id,Name" jsshorthand="contact" name="Contact">
<apex:remoteobjectfield jsshorthand="phone" name="Phone"/>
</apex:remoteobjectmodel>
</apex:remoteobjects>
<div ng-controller="myAngularMVCController">
<form class="form-inline">
<div class="form-group">
<label for="exampleInputName2">Contact Name</label>
<input class="form-control" ng-model="contactName" placeholder="Enter Name to search" type="text"/>
</div>
<button class="btn btn-default" ng-click="fetch(contactName)" type="submit">Search</button>
<ul id="contactsList"></ul>
</form>
</div>
</div>
</apex:page>
Preview
