1

I want to access my property bag using Javascript from a

 <CommandUIHandler
          Command="FCS.Intake.Tab.Reports.TL"
          CommandAction="javascript:
          function getWebProperty() {

        var ctx = new SP.ClientContext.get_current();
        var web = ctx.get_site().get_rootweb();
        this.props =  web.get_allProperties();
        this.props.set_item('aProperty', 'it worked!');
        ctx.load(web);

        ctx.executeQueryAsync(Function.createDelegate(this, gotProperty), Function.createDelegate(this, failedGettingProperty));
    }

    function gotProperty() {
        alert(this.props.get_item('aProperty'));
    }

    function failedGettingProperty() {
        alert('failed');
    }
  getWebProperty();"
        />

But I am getting an error saying " Object has no method 'get_rootweb'. I imagine this is because I haven't registered the sp.js library. If thats the problem, how would I register the sp.js library inside my elements.xml file? (Its all contained inside a element. If thats not the problem, is there a better way to access the property bag using javascript inside a element?

1
  • what is ctx.get_site() returning? May 25, 2012 at 23:44

2 Answers 2

5

I agree with Derek's answer that you have a casing issue. Your issue should be solved by that. Regarding your second question: if you want to make sure that the sp.js is loaded on the page before your code executes, you can do that the following way through elements.xml:

<CommandUIHandler
   Command="FCS.Intake.Tab.Reports.TL"
   CommandAction="javascript:EnsureOrDelayUntilScriptLoaded(function(){
   //Your JavaScript Code here.
   },'sp.js');"
/>
3
  • Is there a way to access a specific propertybag as opposed to allproperties? May 29, 2012 at 18:31
  • Sorry for the late reply but I am not really sure what you mean. Do you want to access the property bag of a specific web? Jun 17, 2012 at 19:31
  • You can create your own custom property bag for your site collection. I am trying to access that property bag. I got it figured out, see the question sharepoint.stackexchange.com/questions/37198/… for more details Jun 17, 2012 at 20:13
3

You have a casing issue. The correct format is

ctx.get_site().get_rootWeb()
0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.