diff options
| -rw-r--r-- | example/temp.html | 15 | ||||
| -rw-r--r-- | jsTestDriver-jquery.conf | 1 | ||||
| -rw-r--r-- | jsTestDriver.conf | 1 | ||||
| -rw-r--r-- | src/Angular.js | 25 | ||||
| -rw-r--r-- | src/angular-bootstrap.js | 4 | ||||
| -rw-r--r-- | src/angular.suffix | 2 | 
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);  | 
