mirror of
https://github.com/Hopiu/angular.js.git
synced 2026-03-16 23:30:23 +00:00
added bootstrap, fixed formatter
This commit is contained in:
parent
a6f2d56b28
commit
2880411713
4 changed files with 90 additions and 12 deletions
21
example/widgets.html
Normal file
21
example/widgets.html
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||
<head>
|
||||
<script type="text/javascript" src="../lib/underscore/underscore.js"></script>
|
||||
<script type="text/javascript" src="../lib/jquery/jquery-1.3.2.js"></script>
|
||||
<script type="text/javascript" src="../src/angular-bootstrap.js"></script>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function(){
|
||||
angular.compile(document).init();
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<input name="form.list" ng-format="list" />
|
||||
<input name="form.list" ng-format="list" />
|
||||
<hr/>
|
||||
<input type="checkbox" name="form.boolean" ng-format="boolean" value="true" checked="checked" />
|
||||
<input type="checkbox" name="form.boolean" ng-format="boolean" value="true" />
|
||||
<pre>{{form}}</pre>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -18,3 +18,4 @@ load:
|
|||
exclude:
|
||||
- src/angular.prefix
|
||||
- src/angular.suffix
|
||||
- src/angular-bootstrap.js
|
||||
|
|
|
|||
|
|
@ -195,7 +195,7 @@ function TextController(view, exp, formatter) {
|
|||
this.required = typeof view.attributes['ng-required'] != "undefined";
|
||||
this.lastErrorText = null;
|
||||
this.lastValue = undefined;
|
||||
this.initialValue = view.value;
|
||||
this.initialValue = this.formatter['parse'](view.value);
|
||||
var widget = view.getAttribute('ng-widget');
|
||||
if (widget === 'datepicker') {
|
||||
jQuery(view).datepicker();
|
||||
|
|
@ -204,11 +204,11 @@ function TextController(view, exp, formatter) {
|
|||
|
||||
TextController.prototype = {
|
||||
updateModel: function(scope) {
|
||||
var value = this.view.value;
|
||||
var value = this.formatter['parse'](this.view.value);
|
||||
if (this.lastValue === value) {
|
||||
return false;
|
||||
} else {
|
||||
scope.setEval(this.exp, this.formatter['parse'](value));
|
||||
scope.setEval(this.exp, value);
|
||||
this.lastValue = value;
|
||||
return true;
|
||||
}
|
||||
|
|
@ -216,16 +216,17 @@ TextController.prototype = {
|
|||
|
||||
updateView: function(scope) {
|
||||
var view = this.view;
|
||||
var value = this.formatter['format'](scope.get(this.exp));
|
||||
var value = scope.get(this.exp);
|
||||
if (typeof value === "undefined") {
|
||||
value = this.initialValue;
|
||||
scope.setEval(this.exp, this.formatter['parse'](value));
|
||||
scope.setEval(this.exp, value);
|
||||
}
|
||||
value = value ? value : '';
|
||||
if (this.lastValue != value) {
|
||||
view.value = value;
|
||||
if (!_(this.lastValue).isEqual(value)) {
|
||||
view.value = this.formatter['format'](value);
|
||||
this.lastValue = value;
|
||||
}
|
||||
|
||||
var isValidationError = false;
|
||||
view.removeAttribute('ng-error');
|
||||
if (this.required) {
|
||||
|
|
@ -255,14 +256,15 @@ function CheckboxController(view, exp, formatter) {
|
|||
this.exp = exp;
|
||||
this.lastValue = undefined;
|
||||
this.formatter = formatter;
|
||||
this.initialValue = view.checked ? view.value : "";
|
||||
this.initialValue = this.formatter['parse'](view.checked ? view.value : "");
|
||||
};
|
||||
|
||||
CheckboxController.prototype = {
|
||||
updateModel: function(scope) {
|
||||
jstd.console.log("model");
|
||||
var input = this.view;
|
||||
var value = input.checked ? input.value : '';
|
||||
value = this.formatter['parse'](value);
|
||||
value = this.formatter['format'](value);
|
||||
if (this.lastValue === value) {
|
||||
return false;
|
||||
} else {
|
||||
|
|
@ -277,10 +279,9 @@ CheckboxController.prototype = {
|
|||
var value = scope.eval(this.exp);
|
||||
if (typeof value === "undefined") {
|
||||
value = this.initialValue;
|
||||
scope.setEval(this.exp, this.formatter['parse'](value));
|
||||
scope.setEval(this.exp, value);
|
||||
}
|
||||
value = this.formatter['format'](value);
|
||||
input.checked = input.value == value;
|
||||
input.checked = this.formatter['parse'](input.value) == value;
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
|||
55
src/angular-bootstrap.js
vendored
Normal file
55
src/angular-bootstrap.js
vendored
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
/**
|
||||
* The MIT License
|
||||
*
|
||||
* Copyright (c) 2010 Adam Abrons and Misko Hevery http://getangular.com
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
(function(previousOnLoad){
|
||||
var filename = /(.*)\/angular-(.*).js/;
|
||||
var scripts = document.getElementsByTagName("script");
|
||||
var serverPath;
|
||||
for(var j = 0; j < scripts.length; j++) {
|
||||
var match = (scripts[j].src || "").match(filename);
|
||||
if (match) {
|
||||
serverPath = match[1];
|
||||
}
|
||||
}
|
||||
|
||||
function addScript(file){
|
||||
document.write('<script type="text/javascript" src="' + serverPath + file +'"></script>');
|
||||
};
|
||||
|
||||
addScript("/Angular.js");
|
||||
addScript("/API.js");
|
||||
addScript("/Binder.js");
|
||||
addScript("/ControlBar.js");
|
||||
addScript("/DataStore.js");
|
||||
addScript("/Filters.js");
|
||||
addScript("/Formatters.js");
|
||||
addScript("/JSON.js");
|
||||
addScript("/Model.js");
|
||||
addScript("/Parser.js");
|
||||
addScript("/Scope.js");
|
||||
addScript("/Server.js");
|
||||
addScript("/Users.js");
|
||||
addScript("/Validators.js");
|
||||
addScript("/Widgets.js");
|
||||
})(window.onload);
|
||||
|
||||
Loading…
Reference in a new issue