Visualforce, Vue.js and Remote Objects - SetUp

Visualforce, Vue.js and Remote Objects - SetUp

Brett M. Nelson - Thursday, April 13, 2017

We have seen how to use @RemoteActions to communicate with but what if you would like to do a little prototyping with out much time invested in Apex development. Or maybe you don't have much/any experience with Apex but would like to start working on the front end. Well, Remote Objects may be for you! Let's take our controller out and re implement our sf.service.js to use Remote Objects to do all our C.R.U.D. things.

We probably should have covered this first as it may not meet the needs of your project since it has not transnational support but hey, it's an option. :)

No Controller

Let's begin by removing the referance to the controller on our Just delete the controller="TryVuejsController" attribute, pretty easy so far.

We can leave the Controller in our org as we may want to use it later.

The apex:page tag should now look like this:

Updated apex:page Tag

<apex:page doctype="html-5.0" standardStylesheets="false" showChat="false" applyBodyTag="false" showHeader="false" sidebar="false">

That's it, controller work done.

Add apex:RemoteObjects

On your Visualforce page add the following:

Add Remote Objects

<apex:remoteObjects jsNamespace="WIPDeveloperModels"> <apex:remoteObjectModel name="Contact" fields="Id, Name, MobilePhone, Email, Title, Department, LeadSource, Level__c, Languages__c" /> </apex:remoteObjects>

Here we are adding our Remote Objects. The outer tag, apex:remoteObjects, defines a base model and gives it a jsNamespace of WIPDeveloperModels, if we didn't provide the jsNamespace it would default to RemoteObjectModel and that would probably be ok but I like WIPDeveloperModels more. Since you can provide a jsNamespace you could have multiple models on your page.

The apex:remoteObjectModel tag has the name of the object you want to use and the the fields from that object your want mapped

With that done we can move on to updating our sf.service.js next time.

To Be Continued...

After we get Remote Objects working what do you think we should try next? Let me know by leaving a comment below or emailing