Giter Club home page Giter Club logo

Comments (2)

codef0rmer avatar codef0rmer commented on August 20, 2024

I see. RC version breaks all of my demos as well. I'll have to check.

from angular-dragdrop.

poshest avatar poshest commented on August 20, 2024

I had this same problem when my callbackName is deeper than one level after the constructor. Eg if my function is specified vm.objgroup.fnStartDrag(arg1, arg2), then I get scope["vm"]["objgroup.fnStartDrag"] // undefined, which should have been scope["vm"]["objgroup"]["fnStartDrag"]

This would be more extensible, accommodating a function at any level of an object hierarchy:

      var objExtract = extract(callbackName),
          fnString = objExtract.fnString,
          args = [event, ui].concat(objExtract.args);

      return (_objNestedAttrGet(scope, fnString)).apply(scope, args);

      function extract(callbackName) {
        var atStartBracket = callbackName.indexOf('(') !== -1 ? callbackName.indexOf('(') : callbackName.length,
            atEndBracket = callbackName.lastIndexOf(')') !== -1 ? callbackName.lastIndexOf(')') : callbackName.length,
            args = callbackName.substring(atStartBracket + 1, atEndBracket), // matching function arguments inside brackets
            fnString = callbackName.substr(0, atStartBracket); 

        return {
          args: $.map(args && args.split(',') || [], function(item) { return [$parse(item)(scope)]; }),
          fnString: fnString
        }
      }

      function _objNestedAttrGet(obj, nestedAttr) {
        if (obj === undefined) return undefined;
        var arrAttrTree = nestedAttr.split('.');

        for (var bit = 0; bit < arrAttrTree.length; bit++) {
          obj = obj[arrAttrTree[bit]];
          if (bit < arrAttrTree.length - 1) {  
            if (!obj) return undefined;  
          } else {
            return obj;
          }
        }
      }

from angular-dragdrop.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.