aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--example/temp.html15
-rw-r--r--jsTestDriver-jquery.conf1
-rw-r--r--jsTestDriver.conf1
-rw-r--r--src/Angular.js25
-rw-r--r--src/angular-bootstrap.js4
-rw-r--r--src/angular.suffix2
6 files changed, 31 insertions, 17 deletions
diff --git a/example/temp.html b/example/temp.html
index b238c185..b6752d57 100644
--- a/example/temp.html
+++ b/example/temp.html
@@ -2,7 +2,7 @@
<html xmlns:ng="http://angularjs.org">
<head>
<script type="text/javascript"
- src="../src/angular-bootstrap.js#autobind"></script>
+ src="../angular-debug.js" ng:autobind ng:css="css/angular.css"></script>
</head>
<body ng:init="$window.$root = this">
@@ -17,10 +17,7 @@ function TicTacToeCntl(){
'cursor': 'pointer'
};
this.reset();
- this.$watch('$location.hashPath', this.setMemento);
- this.$onEval(function(){
- this.$location.hashPath = this.getMemento();
- });
+ this.$watch('$location.hashPath', this.readUrl);
}
TicTacToeCntl.prototype = {
dropPiece: function(row, col) {
@@ -28,6 +25,7 @@ TicTacToeCntl.prototype = {
this.board[row][col] = this.nextMove;
this.nextMove = this.nextMove == 'X' ? 'O' : 'X';
this.grade();
+ this.setUrl();
}
},
reset: function(){
@@ -38,6 +36,7 @@ TicTacToeCntl.prototype = {
];
this.nextMove = 'X';
this.winner = '';
+ this.setUrl();
},
grade: function(){
var b = this.board;
@@ -50,14 +49,14 @@ TicTacToeCntl.prototype = {
function diagonal(i) { return same(b[0][1-i], b[1][1], b[2][1+i]);}
function same(a, b, c) { return (a==b && b==c) ? a : '';};
},
- getMemento: function(){
+ setUrl: function(){
var rows = [];
angular.foreach(this.board, function(row){
rows.push(row.join(','));
});
- return rows.join(';') + '/' + this.nextMove;
+ this.$location.hashPath = rows.join(';') + '/' + this.nextMove;
},
- setMemento: function(value) {
+ readUrl: function(value) {
if (value) {
value = value.split('/');
this.nextMove = value[1];
diff --git a/jsTestDriver-jquery.conf b/jsTestDriver-jquery.conf
index 34538bce..e5dac727 100644
--- a/jsTestDriver-jquery.conf
+++ b/jsTestDriver-jquery.conf
@@ -6,6 +6,7 @@ load:
- lib/jquery/jquery-1.4.2.js
- test/jquery_alias.js
- src/Angular.js
+ - src/JSON.js
- src/*.js
- src/scenario/Runner.js
- src/scenario/*.js
diff --git a/jsTestDriver.conf b/jsTestDriver.conf
index 16bcf1db..bcd01694 100644
--- a/jsTestDriver.conf
+++ b/jsTestDriver.conf
@@ -6,6 +6,7 @@ load:
- lib/jquery/jquery-1.4.2.js
- test/jquery_remove.js
- src/Angular.js
+ - src/JSON.js
- src/*.js
- src/scenario/Runner.js
- src/scenario/*.js
diff --git a/src/Angular.js b/src/Angular.js
index 80acddf0..a9362c69 100644
--- a/src/Angular.js
+++ b/src/Angular.js
@@ -369,22 +369,35 @@ function toKeyValue(obj) {
function angularInit(config){
if (config.autobind) {
- var scope = compile(window.document, null, {'$config':config});
// TODO default to the source of angular.js
- scope.$browser.addCss('css/angular.css');
+ var scope = compile(window.document, null, {'$config':config});
+ if (config.css)
+ scope.$browser.addCss(config.base_url + config.css);
scope.$init();
}
}
-function angularJsConfig(document) {
- var filename = /(.*)\/angular(-(.*))?.js(#(.*))?/,
+function angularJsConfig(document, config) {
+ var filename = /^(.*)\/angular(-([^\/]*))?.js(#(.*))?$/,
scripts = document.getElementsByTagName("script"),
match;
+ config = extend({
+ base_url: '',
+ css: '../css/angular.css'
+ }, config);
for(var j = 0; j < scripts.length; j++) {
match = (scripts[j].src || "").match(filename);
if (match) {
- return match[5];
+ config.base_url = match[1] + '/';
+ extend(match, config, toKeyValue(match[5]));
+ eachAttribute(jqLite(scripts[j]), function(value, name){
+ if (/^ng:/.exec(name)) {
+ name = name.substring(3).replace(/-/g, '_');
+ if (name == 'autobind') value = true;
+ config[name] = value;
+ }
+ });
}
}
- return "";
+ return config;
}
diff --git a/src/angular-bootstrap.js b/src/angular-bootstrap.js
index e055371a..1f03b8a3 100644
--- a/src/angular-bootstrap.js
+++ b/src/angular-bootstrap.js
@@ -22,7 +22,7 @@
* THE SOFTWARE.
*/
(function(previousOnLoad){
- var filename = /(.*)\/angular-(.*).js(#.*)?/,
+ var filename = /^(.*)\/angular-bootstrap.js(#.*)?$/,
scripts = document.getElementsByTagName("SCRIPT"),
serverPath,
match;
@@ -61,7 +61,7 @@
try {
if (previousOnLoad) previousOnLoad();
} catch(e) {}
- angularInit(parseKeyValue(angularJsConfig(document)));
+ angularInit(angularJsConfig(document));
};
})(window.onload);
diff --git a/src/angular.suffix b/src/angular.suffix
index 36d73df2..7e86c5d5 100644
--- a/src/angular.suffix
+++ b/src/angular.suffix
@@ -3,7 +3,7 @@
try {
if (previousOnLoad) previousOnLoad();
} catch(e) {}
- angularInit(parseKeyValue(angularJsConfig(document)));
+ angularInit(angularJsConfig(document));
};
})(window, document, window.onload);