Copied to clipboard

Flag this post as spam?

This post will be reported to the moderators as potential spam to be looked at


  • Kim Nedergaard 37 posts 144 karma points
    Oct 07, 2014 @ 20:38
    Kim Nedergaard
    0

    Angular calling a function with parameter

    I've started playing around with Angular and extending the backend.

    My first attempt is a Google Map data type, where I type in an address and the marker pops up. Inspired by this tutorial: http://www.netaddicts.be/umbraco/enabling-google-maps-in-v7/ ( Awesome tutorial - really helped me alot, on getting started :)

    And now to my problem - I want to attach an id to my input field, where I use the {{model.alias}} to get a unique id in case of my property editor should be used multiple times on same node.

    But I can't seem to parse my {{model.alias}} to my function in my controller - it just returns "undefined".

    My view:

    <div ng-controller="GMaps.GoogleMapsController" class="umb-editor umb-googlemaps"> <div class="" style="height: 400px;" id="{{model.alias}}_map"></div> <form ng-submit="lookupAddress('{{model.alias}}')" class="GMapsSearchForm"> <input type="text" class="GMapsAddress" id="{{model.alias}}_GMapsAddress"/> <input class="GMapsAddressSubmitter" type="submit" /> </form> </div>


    Now I have my function in my controller:

    angular.module("umbraco").controller("GMaps.GoogleMapsController",
          function ($rootScope, $scope, notificationsService, dialogService, assetsService)      { 
           ...
             $scope.lookupAddress = function (modelId) {
                 console.log(modelId);
             ...               
             }
    });

    Any help would be very appreciated :)

    -Kim

  • Dave Woestenborghs 3504 posts 12135 karma points MVP 9x admin c-trib
    Oct 08, 2014 @ 08:08
    Dave Woestenborghs
    1

    Hi Kim,

    I just tested this and this should work.

    What results do you get when you add an alert with the value in your controlller.

    alert($scope.model.alias);

    Dave

  • Warren Buckley 2106 posts 4836 karma points MVP 7x admin c-trib
    Oct 08, 2014 @ 14:02
    Warren Buckley
    1

    Hi Kim, Like Dave as suggested this value should be working for you.

    You could do this in your controller like so:

     //Property Alias
     var propAlias = $scope.model.alias;
     $scope.uniqueID = propAlias + "_GMapsAddress";
    

    And then in your view it could be like so:

    <input type="text" class="GMapsAddress" id="{{uniqueID}}"/>
    

    But to help with debugging I found this useful to use console.log console.log("Model Value", $scope.model.value); to push stuff to the browser console for debugging alot, or to keep an eye on the main model object I have a textarea like so in my editor/view.

    <textarea>
    {{ model.value | json }}
    </textarea>
    
    <textarea>
    {{ model | json }}
    </textarea>
    

    I hope this helps
    Warren

  • Kim Nedergaard 37 posts 144 karma points
    Oct 08, 2014 @ 14:28
    Kim Nedergaard
    0

    When I finaly got the cached cleared - my problem was solved.

    But thanks a million for your reponses.

  • Dave Woestenborghs 3504 posts 12135 karma points MVP 9x admin c-trib
    Oct 08, 2014 @ 14:31
    Dave Woestenborghs
    0

    I have my cache disabled in the chrome developer tools. Saves a lot of time refreshing it.

    Dave

  • This forum is in read-only mode while we transition to the new forum.

    You can continue this topic on the new forum by tapping the "Continue discussion" link below.

Please Sign in or register to post replies