Giter VIP home page Giter VIP logo

batarang's Introduction

AngularJS Batarang

Build Status

Installing from the Web Store

https://chrome.google.com/webstore/detail/ighdmehidhipcmcojjgiloacoafjmpfk

Installing Previous Versions

  1. Download and extract one of the files from the Batarang releases page on GitHub
  2. Navigate to chrome://extensions in Chrome
  3. If you've installed Batarang from the web store, disable or remove that version
  4. On the top right, check the checkbox for "Developer mode"
  5. Click "Load unpacked extension..."
  6. Select the directory where you extracted the extension
  7. Close and re-open any inspected tabs

Installing from Source

See the instructions in the contributing guide

License

MIT

batarang's People

Contributors

btford avatar caguillen214 avatar caitp avatar devatwork avatar gary-b avatar gkalpak avatar jaychsu avatar mgol avatar narretz avatar richardlitt avatar somekittens avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

batarang's Issues

Activate Batarang crashes app

When I activate Batarang, all bindings fail and the only one message I have in console is :
Uncaught TypeError: Object # has no method 'webkitNow'
With this callstack :
ng.config.$provide.decorator.$delegate.proto.$apply
a angular.js:15
d angular.js:26
ob angular.js:15
ic angular.js:15
(anonymous function) angular.js:157
a angular.js:113
c.preventDefault angular.js:23
m angular.js:6
c angular.js:22

Activate the debugger disable the ability of using application. Annoying ;)

Improve/update documentation

Both in-app and the readme are out of date. The next step in docs is going to be to have a script auto-generate the in-app docs from the readme.

Things to be added:

  • Dependency graph

Please update to use AngularJS 1.0.1

If you need help with keeping this extension up to date with latest AngularJS releases, please let me know. I could help contribute pull requests to keep this great extension up to date.

Unable to install batarang on Ubuntu

Hi,

I am using Ubuntu 11.10 and trying to install batarang. This is the error that I receive -

"This application is not supported on this computer. Installation has been disabled."

Can you please help ?

Thanks,
Murtaza

Batarang cannot find my scopes

I am devloping an angular js webpage locally but batarang doesn't appear to do anything when I enable it. I do see the page refresh, but none of the scopes, or events register.

I have downloaded a local copy of minified AngularJS v1.0.2
I have AngularJS Batarang 0.3.0

background.html doesn't print anything to the console.

Models view are not working

models view not working any more after upgrade to 0.3.0

Os: Linux 64, Ubuntu 12
Chrome : Version 23.0.1271.64

Reproduce :
1) visit http://docs.angularjs.org/guide/
2) option AngularJS tab
3) click on Enable, and select Models.
4) Nothing appears in Models page but an empty scope.

Suggestion: Roll UI back

First, thank you for this awesome extension. It is incredibly useful!

I would like to say, though, that I'm not a big fan of the new UI. In this version, the models are collapsed, so to find what I'm looking for I need to click on each model and see if it's the one that I'm looking for, as opposed to before when I could just visually scan for the model that I'm looking for. Yes, I can roughly intuit about where the scope that I'm looking for to reduce the number of possibilities, but it was much easier before when I could just glance at what I want. If others don't like that, perhaps you could offer a configuration option to expand/collapse models by default?

Also, I liked it better when the model values were in textboxes, for two reasons:

  1. It was easy to copy the value to the clipboard (click in, CTRL+A, CTRL+V).
  2. The contrast of black on grey is not great, especially when you get into deeply nested scopes and the background gets even darker.

Thank you again for this fantastic tool, and your time.

Shows no models etc.

Screen shot 2013-02-12 at 3 18 12 PM

I downloaded the Batarang extension and tried it in both Chrome and Chrome Canaray. But it doesn't seem to show me any Angular related data.

What am I doing wrong?

Display of Function Watches

Hi,
in my project time recorder application (http://www.sekas.de/ptr), I use quite a few watches with function expressions as the first argument.
For anonymous functions, the batarang just displays function() in the performance tab. A file name/line number pair would be great for identifying these functions.

RangeError on JSONP call

I'm getting some RangeErrors: while enabling Batarang. I'm doing a JSONP call, it seems Batarang gets in a cycle while retrieving the results. When using google-chrome-unstable, it reports a loop in stringify. Unfortunately I haven't managed to pinpoint what's causing the loop yet.

RangeError {} angular.js:5563
(anonymous function) angular.js:5563
(anonymous function) angular.js:4661
Scope.$digest angular.js:7712
Scope.$apply angular.js:7894
$delegate.__proto__.$apply localhost:500
done angular.js:8883
completeRequest angular.js:9023
(anonymous function) angular.js:8975
doneWrapper

Unable to install extension

  • Installed chrome canary
  • enabled experimental api extensions
  • went to chrome://extensions/
  • enabled Developer
  • clicked on extension link to download
  • clicked on download and it says I 'extensions .... can only be added from chrome store'

(;(

Performance measuring for directives

Hi
the watch expression performance graph means that I can measure filter performance pretty easily with Batarang.
How would I measure performance for a directive?
Thanks
Peter

Race condition on small apps/sites

Instrumentation sometimes does not occur correctly on small apps and sites that load quickly due to a race condition. The instrumentation script must be run after angular.js is loaded, but before angular.bootstrap is called.

Enable doesn't work the first time

To enable Batarang, I have to check enable, uncheck it (which causes the page to refresh), and recheck it (causing another refresh, which loads the scopes and models). If I just check enable once, I get nothing in Models.

batarang & ng-grid makes browser crash

Seems that batarang and angular grid (ng-grid) don't get along nicely.

I keep getting this error (repetitively) when accessing some pages, which contains ng-grid directive with batarang enabled. This error also crashing the browser and block any interaction to the page.

TypeError: Accessing selectionDirection on an input element that cannot have a selection.

sometimes it also spouted error like this:

RangeError: Maximum call stack size exceeded
    at derez (http://localhost:7000/#/:86:43)
    at derez (http://localhost:7000/#/:95:30)
    at derez (http://localhost:7000/#/:95:30)
    at derez (http://localhost:7000/#/:95:30)
    at derez (http://localhost:7000/#/:95:30)
    at derez (http://localhost:7000/#/:95:30)
    at derez (http://localhost:7000/#/:95:30)
    at derez (http://localhost:7000/#/:95:30)
    at derez (http://localhost:7000/#/:95:30)
    at derez (http://localhost:7000/#/:95:30) 

angular.js:5688

I use batarang 0.3.4, angular 1.0.5 and ng-grid 2.0.2

Circular References

If there are circular references between a scope, and an object reference in the controller, batarang will break and simply report "null". It would be preferable if the reference could be captured, and terminated with a reference to the circular reference.

Angular app fails, after activating Batarang

since the 0.3.0 Version, when i am activating the batarang and the page reloads, angular is not working any more. stops during initialization of my app.

Uncaught Error: Argument 'fn' is not a function, got undefined from zs-zoom angular.js:973
assertArg angular.js:973
assertArgFn angular.js:983
annotate angular.js:2281
ng.config.forEach.$provide.(anonymous function)

(zs-zoom is a directive)

When batarang is deactivated, everything works fine.

some more info:
i use angular in the async bootstrap mode (with $script loading of files)

Error when trying to install

I've enabled Experimental Extension APIs but when I try to install the extension in my latest release of Canary (Version 22.0.1194.0 canary), I get Extensions, apps and user scripts can only be added from the Chrome Web Store.

Filter scopes by selected DOM element

It would be nice if there was a checkbox/toggle on the "Model" tab to filter scope down to currently inspected element.

It would make it easier (and more usable) if I could filter or jump down to the scope I'm trying to reach.

Alternatively, if I could filter the models by typing the name into a search box this would help too, but may be more processor intensive.

Alternatively, it would perhaps be helpful if you could just auto-contract (via the toggle link) all scopes that are not on the current DOM element's scope lineage. So sibling scopes (including aunts and uncles) would be closed so that I can more easily get to the scope I'm trying to inspect more quickly.

When batarang is enabled getting errors on scope $digest

When batarang is enabled I consistently see errors in console. The application becomes slow and errors appear many-many times and looks like on each digest cycle. The error is thrown inside the $digest function (inside the try-catch inside watcher while-loop), it's caught by try-catch and delegated to exception handler. I couldn't narrow it down further. But the problem goes away when batarang is disabled.

These are two types of errors that I'm seeing:

RangeError: Maximum call stack size exceeded
at Object.stringify (native)
at derez (http://localhost:8080/index.html:96:39)
at derez (http://localhost:8080/index.html:95:30)
at derez (http://localhost:8080/index.html:95:30)
at derez (http://localhost:8080/index.html:95:30)
at derez (http://localhost:8080/index.html:95:30)
at derez (http://localhost:8080/index.html:95:30)
at derez (http://localhost:8080/index.html:95:30)
at derez (http://localhost:8080/index.html:95:30)
at derez (http://localhost:8080/index.html:95:30) bundle.js:5619
(anonymous function) bundle.js:5619
(anonymous function) bundle.js:4716
Scope.$digest bundle.js:7820
Scope.$apply bundle.js:8009
$delegate.proto.$apply localhost:500
done bundle.js:9019
completeRequest bundle.js:9159
xhr.onreadystatechange

TypeError: Accessing selectionDirection on an input element that cannot have a selection.
at derez (http://localhost:8080/index.html:95:41)
at derez (http://localhost:8080/index.html:95:30)
at derez (http://localhost:8080/index.html:95:30)
at derez (http://localhost:8080/index.html:95:30)
at derez (http://localhost:8080/index.html:95:30)
at derez (http://localhost:8080/index.html:95:30)
at derez (http://localhost:8080/index.html:95:30)
at derez (http://localhost:8080/index.html:95:30)
at derez (http://localhost:8080/index.html:95:30)
at derez (http://localhost:8080/index.html:95:30) bundle.js:5619
(anonymous function) bundle.js:5619
(anonymous function) bundle.js:4716
Scope.$digest bundle.js:7820
Scope.$apply bundle.js:8009
$delegate.proto.$apply localhost:500
done bundle.js:9019
completeRequest bundle.js:9159
xhr.onreadystatechange

Using angular 1.0.4.

Application doesn't start with batarang 0.3 enabled

I have strange errors in console (not if batarang disabled)

RangeError
 jak.js:92
JAK.C._log jak.js:92
(anonymous function) jak.js:92
(anonymous function) angular.js:5563
(anonymous function) angular.js:4661
Scope.$digest angular.js:7712
Scope.$apply angular.js:7894
$delegate.__proto__.$apply add-course (1):454
(anonymous function) angular.js:930
invoke angular.js:2788
bootstrap angular.js:928
angularInit angular.js:904
(anonymous function) angular.js:14397
n jquery.js:2
o.fireWith jquery.js:2
e.extend.ready jquery.js:2
c.addEventListener.B

and

TypeError: Accessing selectionDirection on an input element that cannot have a selection.
    at derez (http://edu.lmc.cz/add-course:95:41)
    at derez (http://edu.lmc.cz/add-course:95:30)
    at derez (http://edu.lmc.cz/add-course:95:30)
    at derez (http://edu.lmc.cz/add-course:95:30)
    at derez (http://edu.lmc.cz/add-course:95:30)
    at derez (http://edu.lmc.cz/add-course:95:30)
    at derez (http://edu.lmc.cz/add-course:95:30)
    at derez (http://edu.lmc.cz/add-course:95:30)
    at derez (http://edu.lmc.cz/add-course:95:30)
    at derez (http://edu.lmc.cz/add-course:95:30) jak.js:92
JAK.C._log jak.js:92
(anonymous function) jak.js:92
(anonymous function) angular.js:5563
(anonymous function) angular.js:4661
Scope.$digest angular.js:7712
Scope.$apply angular.js:7894
$delegate.__proto__.$apply add-course (1):454
(anonymous function) angular.js:930
invoke angular.js:2788
bootstrap angular.js:928
angularInit angular.js:904
(anonymous function) angular.js:14397
n jquery.js:2
o.fireWith jquery.js:2
e.extend.ready jquery.js:2
c.addEventListener.B

some help ?

Performance no longer works

I'm running Chrome 24 on the Dev channel, and trying to use the Performance tab no longer works. The console shows the error Uncaught TypeError: Object #<Performance> has no method 'webkitNow', so it's pretty obvious that this is because window.performance.now is no longer prefixed.

Best practices and CDN warnings

Show warnings when some best practices are violated. For instance:

  • When using angular.js hosted on code.angularjs.org, show a warning that they should use the CDN instead. Color codes: red when using code.angularjs.org, green for hosting it with the CDN, grey for anywhere else.
  • When $scope.$apply() appears inside of a controller, explain that this violates best practices.

It might also be useful to provide these as command line tools for linting.

Not Logging to Console after page reload

With Performance logging enabled, when "Log to console" is also enabled, the current session will get function run duration in ms in the console, but once the page reloads, the Performance "Enable" box and "Log to Console" are still checked, yet no more run duration is logged in the console. One has to uncheck then recheck the "log to console" box to enable that.

I am on Version 22.0.1229.6 dev Mountain Lion

JSON tree views for scope's models.

One thought that had while using it, is that it would be extremely helpful to be able to have a tree view of the model data so the data can be collapsed as well as showing an abbreviated object definition for each of the scope's models.
I have many scopes some with lots of data and I spend a lot of time clicking through each model and scrolling through quite a bit of data to find what I'm looking for.

Something like:
Scope (020) | PeopleCtrl | models {name:String, date:Date ...}
- {
name: "Bob",
dob: "Wed Feb 06 2013 09:50:35 GMT-0700 (Mountain Standard Time)",
address: + {Object},
likes: - Array [
"AngularJs",
"Batarang",
"Bootstrap"
]
}

Unable to find root node for iFrames

Currently the - otherwise great - extension does not seem to be able to detect an Angular.JS root node within an iFrame. For example within the JSFiddle results frame. It would be great I think if the extension could automatically detect that frame, and the angular root node inside.

$exceptionHandler breaks with Batarang

From the app.js:

[main app module].provider({
    $exceptionHandler: function () {
        var handler = function (exception, cause) {
            console.log(exception, cause);
            alert(exception);
        };
    }
});

This is basically a placeholder function we'll be expanding to do nicer error-handling in production.

It throws no helpful error message in the console.

Remove polling

Replace appContext. watchPoll with an API that listens to window.postMessage. This might require instrumentation for any of the tabs to work, since $watch would need to be modified to make the call in the application context to window.postMessage. These calls may also need to be throttled for pages running multiple applications.

Disable batarang in production?

Is there a clever way to disable Batarang so various folk can't inspect my application when it's live on the real internet? I realize it's security through obscurity, but just curious.

Edit: I withdrew thinking this was a good idea. It's not.

doesn't work

18.0.1025.168 (Developer Build 134367 Linux) Ubuntu 11.04

I don't see anything in inspector while opening angular app, as if extension is not installed.

Search inside model

Hello:
Thanks for the new batarang feature first. It's a great tool, and I really love it.
I have a request to be able to search in the models tab.
This is a very useful feature if you have a lot of models.

Regards and Thanks again.

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.