导航:首页 > 编程语言 > angularjs表单控件

angularjs表单控件

发布时间:2023-03-24 07:10:20

『壹』 vue.js和angularjs的区别是什么

React 和 Vue 有许多相似之处,它们都有:
1.使用 Virtual DOM
2.提供了响应式(Reactive)和组件化(Composable)的视图组件。
3.将注意力集中保持在核心库,伴随于此,有配套的路由和负责处理全局状态管理的库。

React 和 Vue 的区别:
1.复杂性
在 API 与设计两方面上 Vue.js 都比 Angular 1 简单得多,因此你可以快速地掌握它的全部特性并投入开发。

2.灵活性和模块化
Vue.js 是一个更加灵活开放的解决方案。它允许你以希望的方式组织应用程序,而不是在任何时候都必须遵循 Angular 1 制定的规则,这让 Vue 能适用于各种项目。我们知道把决定权交给你是非常必要的。
这也就是为什么我们提供 Webpack template,让你可以用几分钟,去选择是否启用高级特性,比如热模块加载、linting、CSS 提取等等。

3.数据绑定
Angular 1 使用双向绑定,Vue 在不同组件间强制使用单向数据流。这使应用中的数据流更加清晰易懂。

4.指令与组件
在 Vue 中指令和组件分得更清晰。指令只封装 DOM 操作,而组件代表一个自给自足的独立单元 —— 有自己的视图和数据逻辑。在 Angular 中两者有不少相混的地方。

5.性能
Vue 有更好的性能,并且非常非常容易优化,因为它不使用脏检查。

『贰』 AngularJS的数据双向绑定是怎么实现的

页面直接调用ng-model 指令来实现双向数据绑定
<input type="text" ng-model="test">
在controller中定义$scope.test 就可以了

『叁』 AngularJS中的表单简单入门

AngularJS
表单
AngularJS
表单是输入控件的集合。
HTML
控件
以下
HTML
input
元素被称为
HTML
控件:
input
元素
select
元素
button
元素
textarea
元素
HTML
表单
HTML
表单通常与
HTML
控件同时存在。
AngularJS
表单实例
First
Name:
Last
Name:

RESET
form
=
{"firstName":"John","lastName":"Doe"}
master
=
{"firstName":"John","lastName":"Doe"}
应用程序代码
<!DOCTYPE
html>
<html>
<head>
<meta
charset="utf-8">
<script
src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script>
</head>
<body>
<div
ng-app="myApp"
ng-controller="formCtrl">
<form
novalidate>
First
Name:<br>
<input
type="text"
ng-model="user.firstName"><br>
Last
Name:<br>
<input
type="text"
ng-model="user.lastName">
<br><br>
<button
ng-click="reset()">RESET</button>
</form>
<p>form
=
{{user
}}</p>
<p>master
=
{{master}}</p>
</div>
<script>
var
app
=
angular.mole('myApp',
[]);
app.controller('formCtrl',
function($scope)
{
$scope.master
=
{firstName:"John",
lastName:"Doe"};
$scope.reset
=
function()
{
$scope.user
=
angular.($scope.master);
};
$scope.reset();
});
</script>
</body>
</html>
运行结果:
First
Name:
Last
Name:

RESET
form
=
{"firstName":"John","lastName":"Doe"}
master
=
{"firstName":"John","lastName":"Doe"}
注意: novalidate
属性是在
HTML5
中新增的。禁用了使用浏览器的默认验证。
实例解析
ng-app
指令定义了
AngularJS
应用。
ng-controller
指令定义了应用控制器。
ng-model
指令绑定了两个
input
元素到模型的
user
对象。
formCtrl
函数设置了
master
对象的初始值,并定义了
reset()
方法。
reset()
方法设置了
user
对象等于
master
对象。
ng-click
指令调用了
reset()
方法,且在点击按钮时调用。
novalidate
属性在应用中不是必须的,但是你需要在
AngularJS
表单中使用,用于重写标准的
HTML5
验证。
以上就是对AngularJS
表单资料的整理,后续继续补充,希望能帮助编程的同学。

『肆』 angularjs表单验证无法应用问题

java"><divclass="col-md-6">
<formrole="form"class="form-horizontal">
<divclass="form-group">
<divclass="col-md-4">
<labelfor="name">1.必填项</label>
</div>
<divclass="col-md-8">
<inputclass="form-control"id="name"type="text"requiredng-model='user.name'/>
</div>
</div>
<divclass="form-group">
<divclass="col-md-4">
<labelfor="minlength">2.最小长度=5</label>
</div>
<divclass="col-md-8">
<inputtype="text"id="minlength"ng-minlength="5"ng-model="user.minlength"class="form-control"/>
</div>
</div>
<divclass="form-group">
<divclass="col-md-4">
<labelfor="minlength">3.最大长度=20</label>
</div>
<divclass="col-md-8">
<inputtype="text"ng-model="user.maxlength"ng-maxlength="20"class="form-control"/>
</div>
</div>
<divclass="form-group">
<divclass="col-md-4">
<labelfor="minlength">4.模式匹配</label>
</div>
<divclass="col-md-8">
<inputtype="text"id="minlength"ng-model="user.pattern"ng-pattern="/^[a-zA-Z]*d$/"class="form-control"/>
</div>
</div>
<divclass="form-group">
<divclass="col-md-4">
<labelfor="email">5.电子邮件</label>
</div>
<divclass="col-md-8">
<inputtype="email"id="email"name="email"ng-model="user.email"class="form-control"/>
</div>
</div>
<divclass="form-group">
<divclass="col-md-4">
<labelfor="age">6.数字</label>
</div>
<divclass="col-md-8">
<inputtype="number"id="age"name="age"ng-model="user.age"class="form-control"/>
</div>
</div>
<divclass="form-group">
<divclass="col-md-4">
<labelfor="url">7.URL</label>
</div>
<divclass="col-md-8">
<inputtype="url"id="url"name="homepage"ng-model="user.url"class="form-control"/>
</div>
</div>
<divclass="form-grouptext-center">
<inputclass="btnbtn-primarybtn-lg"type="submit"value="提交"/>
</div>
</form>
</div>
<divclass="col-md-12">
1.必填项:{{user.name}}<br>
2.最小长度=5:{{user.minlength}}<br>
3.最大长度=20:{{user.maxlength}}<br>
4.模式匹配:{{user.pattern}}<br>
5.电子邮件:{{user.email}}<br>
6.数字:{{user.age}}<br>
7.URL:{{user.url}}<br>
</div>

『伍』 angularjs怎么重置表单

我们前端有一个方式就是在界面提供一个重置按钮,然后在界面设置你要重置的区域,设置一个id,然后调用如下函数,可以清除所有input或者select已经勾选的选项:

//重置
scope.onReset=function(){
$.each($('#query_criteria_mo').find('input'),function(i,ele){
if($(ele).attr('type')=='text'){
$(ele).val('');
};
});
$.each($('#query_criteria_moselect'),function(i,ele){
varselIndex=$(ele).get(0).selectIndex;
$(ele).get(0).selectedIndex=0;
});
};

『陆』 Angularjs四大特性

Angularjs的四大特性

view绑定到model,把视图中可以修改的HTML元素,即表单控件的值绑定到模型哗旅变量上。此后,只要用户修改了表单控件的值后,后台模型变量的值会立即随之改变
实现: 只有ngmodel指令可以,为了监视到Model变量真乱判凳的被改变了可以使用$scope.$watch()函数冲模对Model数据的值进行监视,

『柒』 angularjs表单提交 怎么接受数据

我们会关注两种提交表单的方式:
旧方法:jQuery和PHP提交表单
新方法:AngularJS和PHP提交表单
首先看一下我们的表单,超级简单:

形式要求
实现页面无刷新表单处理
输入姓名和超级英雄别名
如果有错误,显示错误提示
如果输入有误,将输入变成红色
如果所有内容ok,显示成功提示
文档结构
在我们的展示中,仅需两个文件
index.html
process.php

表单处理
让我们新建一个PHP来处理表单。该页面非常小并且使用POST方式提交数据。
处理表单:这对我们来说并不是那么重要的。你可以使用其他你喜欢的语言来处理你的表单。
// process.php

<?php

$errors = array(); // array to hold validation errors
$data = array(); // array to pass back data

// validate the variables ======================================================
if (empty($_POST['name']))
$errors['name'] = 'Name is required.';

if (empty($_POST['superheroAlias']))
$errors['superheroAlias'] = 'Superhero alias is required.';

// return a response ===========================================================

// response if there are errors
if ( ! empty($errors)) {

// if there are items in our errors array, return those errors
$data['success'] = false;
$data['errors'] = $errors;
} else {

// if there are no errors, return a message
$data['success'] = true;
$data['message'] = 'Success!';
}

// return all our data to an AJAX call
echo json_encode($data);

这是一个非常简单的表单处理脚本。我们仅检查数据是否存在,如果存在,则不做任何处理和操做;如果不存在,则需要向$errors数组中添加一条信息。
为了返回我们的数据用于AJAX调用,我们需要使用echo和json_encode。这就是我们PHP表单处理所有需要做的操作。使用普通的jQuery AJAX或者Angular处理表单也是这样的。
展示表单
让我们创建一个HTML来展示我们的表单
<!-- index.html -->

<!doctype html>
<html>
<head>
<title>Angular Forms</title>

<!-- LOAD BOOTSTRAP CSS -->
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.0.2/css/bootstrap.min.css">

<!-- LOAD JQUERY -->
<!-- when building an angular app, you generally DO NOT want to use jquery -->
<!-- we are breaking this rule here because jQuery's $.param will help us send data to our PHP script so that PHP can recognize it -->
<!-- this is jQuery's only use. avoid it in Angular apps and if anyone has tips on how to send data to a PHP script w/o jQuery, please state it in the comments -->
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>

<!-- PROCESS FORM WITH AJAX (OLD) -->
<script>
<!-- WE WILL PROCESS OUR FORM HERE -->
</script>
</head>
<body>
<div class="container">
<div class="col-md-6 col-md-offset-3">

<!-- PAGE TITLE -->
<div class="page-header">
<h1><span class="glyphicon glyphicon-tower"></span> Submitting Forms with Angular</h1>
</div>

<!-- SHOW ERROR/SUCCESS MESSAGES -->
<div id="messages"></div>

<!-- FORM -->
<form>
<!-- NAME -->
<div id="name-group" class="form-group">
<label>Name</label>
<input type="text" name="name" class="form-control" placeholder="Bruce Wayne">
<span class="help-block"></span>
</div>

<!-- SUPERHERO NAME -->
<div id="superhero-group" class="form-group">
<label>Superhero Alias</label>
<input type="text" name="superheroAlias" class="form-control" placeholder="Caped Crusader">
<span class="help-block"></span>
</div>

<!-- SUBMIT BUTTON -->
<button type="submit" class="btn btn-success btn-lg btn-block">
<span class="glyphicon glyphicon-flash"></span> Submit!
</button>
</form>

</div>
</div>
</body>
</html>

现在,我们有了表单。我们另外还使用了Bootstrap来使表单看起来不是那么丑。使用Bootstrap语法规则,每个input下含有一个spot来展示我们文本的错误信息。
使用jQuery提交表单
现在,让我们来使用jQuery处理表单提交。我会将所有的代码添加到空的<script>标签中
<!-- index.html -->

...

<!-- PROCESS FORM WITH AJAX (OLD) -->
<script>
$(document).ready(function() {

// process the form
$('form').submit(function(event) {

// remove the past errors
$('#name-group').removeClass('has-error');
$('#name-group .help-block').empty();
$('#superhero-group').removeClass('has-error');
$('#superhero-group .help-block').empty();

// remove success messages
$('#messages').removeClass('alert alert-success').empty();

// get the form data
var formData = {
'name' : $('input[name=name]').val(),
'superheroAlias' : $('input[name=superheroAlias]').val()
};

// process the form
$.ajax({
type : 'POST',
url : 'process.php',
data : formData,
dataType : 'json',
success : function(data) {

// log data to the console so we can see
console.log(data);

// if validation fails
// add the error class to show a red input
// add the error message to the help block under the input
if ( ! data.success) {

if (data.errors.name) {
$('#name-group').addClass('has-error');
$('#name-group .help-block').html(data.errors.name);
}

if (data.errors.superheroAlias) {
$('#superhero-group').addClass('has-error');
$('#superhero-group .help-block').html(data.errors.superheroAlias);
}

} else {

// if validation is good add success message
$('#messages').addClass('alert alert-success').append('<p>' + data.message + '</p>');
}
}
});

// stop the form from submitting and refreshing
event.preventDefault();
});

});
</script>

...

这里处理表单有不少的代码。我们有获取表单中变量的代码,有使用AJAX将数据发送至我们的表单的代码,有检查是否有错和显示成功提示的代码。除此之外,我们希望每次表单提交之后,过去的错误信息都会被清除。确实是不少代码。
现在,如果表单中含有错误,则:

如果提交成功:

现在,让我们看使用Angular来提交相同的表单。记住,我们不需要更改任何关于我们的PHP如何处理表单的内容,我们的应用依然会具备相同的功能(在同一个地方展示错误和成功信息)。
使用Angular提交表单
我们准备在之前使用的<script>标签中设置我们的Angular应用。所以删除里面的内容,我们就可以开始了。
设置一个Angular应用
步骤为:
1. 加载Angular
2. 设置mole
3. 这是controller
4. 将mole和controller应用于HTML
5. 设置双向变量绑定
6. 这是错误和信息
看起来好像是很多内容,但是最终,我们会用非常少的代码,并且看起来会非常简洁。另外,创建带有更多输入更大的表单,也会更容易。
Angular 组件和控制器
首先,加载Angular并且新建组件和控制器
<!-- index.html -->

...

<!-- LOAD JQUERY -->
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<!-- LOAD ANGULAR -->
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js"></script>

<!-- PROCESS FORM WITH AJAX (NEW) -->
<script>

// define angular mole/app
var formApp = angular.mole('formApp', []);

// create angular controller and pass in $scope and $http
function formController($scope, $http) {

}

</script>
</head>

<!-- apply the mole and controller to our body so angular is applied to that -->
<body ng-app="formApp" ng-controller="formController">

...

现在,我们有了Angular应用的基础。我们已经加载了Angular,创建了组件模块和控制器,并且将其应用于我们的网站
接下来,我将展示双向绑定是如何工作的。
双向数据绑定
这是Angular的核心思想之一,也是功能最强大的内容之一。在Angular文档中,我们看到:“在Angular网页应用中的数据绑定,是模型和视图层之间的数据自动同步。”这意味着,我们需要在表单中抓取数据,使用$('input[name=name]').val()并不是必需的。
我们在Angular中将数据和变量绑定在一起,无论是javascript也好,view也罢,只要有改变,两者皆变。
为了演示数据绑定,我们需要获取表单的input来自动填充变量formData。让我们回到应用于页面的Angular控制器中。我们在过一下$scope和$http。
$scope:控制器和视图层之间的粘合剂。基本上,变量使用$scope从我们的控制器和视图层之间传递和往来。具体详细的定义,请参见文档。
$http:Angular服务来帮助我们处理POST请求。更多信息,请参见文档。
使用数据绑定获取变量
好了,闲话少说。我们将这些讨论应用到表单中去。方法比上面讨论的要简单。我们想Angular控制器和视图中分别添加一行。
<!-- index.html -->

...

<!-- PROCESS FORM WITH AJAX (NEW) -->
<script>

// define angular mole/app
var formApp = angular.mole('formApp', []);

// create angular controller and pass in $scope and $http
function formController($scope, $http) {

// create a blank object to hold our form information
// $scope will allow this to pass between controller and view
$scope.formData = {};

}

...

现在,我们已经建立了一个formData对象。让我们用表单数据来填充它。在显示调用每个输入和获得val()之前,我们用ng-model绑定一个特殊的输入到变量。

<!-- index.html -->

...

<!-- FORM -->
<form>
<!-- NAME -->
<div id="name-group" class="form-group">
<label>Name</label>
<input type="text" name="name" class="form-control" placeholder="Bruce Wayne" ng-model="formData.name">
<span class="help-block"></span>
</div>

<!-- SUPERHERO NAME -->
<div id="superhero-group" class="form-group">
<label>Superhero Alias</label>
<input type="text" name="superheroAlias" class="form-control" placeholder="Caped Crusader" ng-model="formData.superheroAlias">
<span class="help-block"></span>
</div>

<!-- SUBMIT BUTTON -->
<button type="submit" class="btn btn-success btn-lg btn-block">
<span class="glyphicon glyphicon-flash"></span> Submit!
</button>
</form>

<!-- SHOW DATA FROM INPUTS AS THEY ARE BEING TYPED -->
<pre>
{{ formData }}
</pre>

...

现在,既然Angular已经将每个输入绑到了formData。 当你输入每个输入框,你可以看到formData对象被填充了!有没有很酷!
你不必在view中使用$scope。一切被认为是嵌入到$scope中的。

处理表单
在我们的旧表单中,我们使用jQuery提交表单,像这样$('form').submit()。现在我们使用Angular称作ng-submit的特性。要想完成这个,我们需要添加一个控制器函数来处理表单,然后告诉我们form使用这个控制器函数:

<!-- index.html -->

...

<!-- PROCESS FORM WITH AJAX (NEW) -->
<script>

// define angular mole/app
var formApp = angular.mole('formApp', []);

// create angular controller and pass in $scope and $http
function formController($scope, $http) {

// create a blank object to hold our form information
// $scope will allow this to pass between controller and view
$scope.formData = {};

// process the form
$scope.processForm = function() {

};

}

...

<!-- FORM -->
<form ng-submit="processForm()">

...

现在我们的form知道提交时使用控制器函数了。既然已经到位了,然我们用$http来处理表单吧。
处理表单的语法看起来跟原始方式很像。好处是我们不需要手动抓取表单数据,或者注入,隐藏,添加类显示错误或成功信息。
<!-- index.html -->

...

// process the form
$scope.processForm = function() {
$http({
method : 'POST',
url : 'process.php',
data : $.param($scope.formData), // pass in data as strings
headers : { 'Content-Type': 'application/x-www-form-urlencoded' } // set the headers so angular passing info as form data (not request payload)
})
.success(function(data) {
console.log(data);

if (!data.success) {
// if not successful, bind errors to error variables
$scope.errorName = data.errors.name;
$scope.errorSuperhero = data.errors.superheroAlias;
} else {
// if successful, bind success message to message
$scope.message = data.message;
}
});
};

...

这就是我们的表单!没有添加或移除类。我们需要每次提交表单时都清楚错误。我们只需绑定变量和需要用到的视图。这非常棒,因为处理器用来处理数据,而视图用来显示数据.

jQuery POST vs Angular POST
有时能看到用POST方式提交在服务器中看不到数据,这是因为jQuery和Angular的序列化和发送数据的方式不同。这归结于你所使用的服务器语言和它理解Angular提交的数据的能力。
上面的代码是应用于PHP服务器的,jQuery对于$.param函数则是必需的。虽然实现上文中提到的内容有非常多不使用jQuery的方法,但在本实例中,使用jQuery的唯一原因就是,它更简单。

『捌』 如何使用AngularJS对表单提交内容进行验证

可以用ng-change监听改变,然后符合正则轿核就通过,饥兆不符合就提示
我记得有闭肢掘插件直接可用,

『玖』 angularjs中表单项是个数组怎么办

像jQuery,我如何添加动态行的表的表单在一个按钮angularjs,以及如何区分这些表版单数组一样在正常的jQuery提交。权<tr>
<td style="text-align:center">1</td>
<td>
<input type="text" class="form-control" required ng-model="newItem.assets">
</td>
<td>
<select ng-model="newItem.type" class="form-control">
<option value="Rent" ng-selected="'Rent'">Rent</option>
<option value="Lease">Lease</option>
</select>

『拾』 如何在angularjs NG

指令,我将其理解为AngularJS操作HTML element的一种途径。
由于学习AngularJS的第一步就是写内置指令ng-app以指出该节点是应用的根节点,所以指令早已不陌生。

【内置指令】

所有的内置指令的前缀都为ng,不建议自定义指令使用该前缀,以免冲突。
首先从一些常见的内置指令开始。先列出一些关键的内置指令,顺便简单说说作用域的问题。

[ng-model]

将表单控件和当前作用域的属性进行绑定,这么解释似乎也不太正确。
但先不要管咬文嚼字,用起来倒是易懂,例如:

<input type="text" ng-model="someModel.someProperty" /><br>
{{someModel.someProperty}}

[ng-init]

该指令被调用时会初始化内部作用域。
这个指令一般会出现在比较小的应用中,比如给个demo什么的...当然也可以作为双向数据绑定时候 设置默认值

<div ng-init="job='fighter'">
I'm a/an {{job}}
</div>

[ng-app]

每一次用AngularJS都离不开这个指令,顺便说下$rootScope。
声明了ng-app的元素会成为$rootScope的起点,而$rootScope是作用域链的根,通常声明在<html>你懂的。
也就是说根下的作用域都可以访问它。
但是,不建议过度使用$rootScope,免得全局变量满天飞,效率又差又难管。
下面是一个例子:


<html ng-app="myApp">
<body>
{{ someProperty }}
</body>
<script>
var myApp = angular.mole('myApp', [])
.run(function($rootScope) {
$rootScope.someProperty = 'hello computer';
});
</script>
</html>


ng-controller

我们用这个指令在一个DOM元素上装上controller。
ng-controller必须有一个表达式作为参数,另外通过$scope来继承上级$scope的方法和属性什么的,$rootScope也包括在内。
下面只是一个简单的例子,ancestor无法访问child的作用域。


<div ng-controller="AncestorController">
{{ ancestorName }}
{{ childName }}
<div ng-controller="ChildController">
{{ ancestorName }}
{{ childName }}
</div>
</div>
<script>
var myApp = angular.mole('myApp', [])
.controller('ChildController', function($scope) {
$scope.childName = 'child';
})
.controller('AncestorController', function($scope) {
$scope.ancestorName = 'ancestor';
});
</script>


ng-form

起初不明白为什么会有个表单指令,<form>标签感觉也够用啊。
以表单验证为例,在上一篇中有这么一段代码:

<input type="submit" ng-disabled="mainForm.$invalid" />

也就是表单的状态为$invalid时禁用提交按钮。
如果场景再稍微复杂一点点,比如一个父表单中有多个子表单,子表单中有3个验证通过时父表单便可以提交。
但是,<form>是不可以嵌套的。
考虑到这种场景,我们便使用ng-form指令来解决这一问题。
例如:


<form name="mainForm" novalidate>
<div ng-form="form1">
姓名:<input type="text" ng-required="true" ng-model="name"/><br>
证件号码:<input type="number" ng-minLength="15" ng-maxLength="18" ng-required="true" ng-model="idnum"/>
</div>
<br>
<div ng-form="form2">
监护人姓名:<input type="text" ng-required="true" ng-model="gname"/><br>
监护人证件号码:<input type="number" ng-minLength="15" ng-maxLength="18" ng-required="true" ng-model="gidnum"/>
</div>
<button ng-disabled="form1.$invalid && form2.$invalid">submit all</button>
</form>


ng-disabled

像这种只要出现则生效的属性,我们可以在AngularJS中通过表达式返回值true/false令其生效。
禁用表单输入字段。

<textarea ng-disabled="1+1==2">1+1=?</textarea>

ng-readonly

通过表达式返回值true/false将表单输入字段设为只读。
弄个例子,3秒后变成只读.


<input type="text" ng-readonly="stopTheWorld" value="stop the world after 3s"/>
.run(function($rootScope,$timeout){
$rootScope.stopTheWorld=false;
$timeout(function(){
$rootScope.stopTheWorld = true;
},3000)
})


ng-checked

这个是给<input type="checkbox" />用的,比如..

<input type="checkbox" ng-checked="someProperty" ng-init="someProperty = true" ng-model="someProperty">

ng-selected

给<select>里面的<option>用的,例子:


<label>
<input type="checkbox" ng-model="isFullStack">
I'm Full Stack Engineer
</label>
<select>
<option>Front-End</option>
<option>Back-End</option>
<option ng-selected="isFullStack">Full Stack !!!</option>
</select>


ng-show/ng-hide

根据表达式显示/隐藏HTML元素,注意是隐藏,不是从DOM移除,例如:

<div ng-show="1+1 == 2">
1+1=2
</div>
<div ng-hide="1+1 == 3">
you can't see me.
</div>

ng-change

不是HTML那套onXXX之类的,而是ng-XXX。
结合ng-model使用,以ng-change为例:

<input type="text" ng-model="calc.arg" ng-change="calc.result = calc.arg*2" />
<code>{{ calc.result }}</code>

或者比如ng-options

{{}}

其实这个也是一个指令,也许觉得和ng-bind差不多,但页面渲染略慢时可能会被看到。
另外,{{}}的performance远不如ng-bind,只是用起来很方便。

ng-bind

ng-bind的行为和{{}}差不多,只是我们可以用这个指令来避免FOUC(Flash Of Unrendered Content),也就是未渲染导致的闪烁。

ng-cloak

ng-cloak也可以为我们解决FOUC。 ng-cloak会将内部元素隐藏,直到路由调用对应的页面。

ng-if

如果ng-if中的表达式为false,则对应的元素整个会从DOM中移除而非隐藏,但审查元素时你可以看到表达式变成注释了。
如果相进行隐藏,可以使用ng-hide。

<div ng-if="1+1===3">
无法审查到该元素
</div>
<div ng-hide="1+1==2">
可审查
</div>

ng-switch

单独使用没什么意思,下面是例子:


<div ng-switch on="1+1">
<p ng-switch-default>0</p>
<p ng-switch-when="1">1</p>
<p ng-switch-when="2">2</p>
<p ng-switch-when="3">3</p>
</div>


ng-repeat

是遍历集合,给每个元素生成模板实例,每个实例的作用域中可以用一些特殊属性,如下:


$index
$first
$last
$middle
even
odd


<ul>
<li ng-repeat="char in
[{'alphabet': 'K'},
{'alphabet': 'A'},
{'alphabet': 'V'},
{'alphabet': 'L'},
{'alphabet': 'E'},
{'alphabet': 'Z'}] " ng-show="$even">{{char.alphabet}}</li>
</ul>





ng-href

起初我在一个文本域中弄了个ng-model,然后像这样<a href="{{myUrl}}">在href里面写了进去。
其实这样href和ng-href看不出什么区别,所以我们可以试试这样:


<ul ng-init="myHref=''">
<li><a ng-href="{{ myHref }}">{{linkText}}</a></li>
<li><a href="{{ myHref }}">可以点击,但不一定是正确的地址</a></li>
</ul>
.run(function($rootScope, $timeout) {
$rootScope.linkText = '尚未加载,您无法点击';
$timeout(function() {
$rootScope.linkText = '请点击'
$rootScope.myHref = 'http://google.com';
}, 2000);
})


ng-src

大同小异,即表达式生效前不要加载该资源。
例子(ps: 图片不错! ):

<img ng-src="{{imgSrc}}"/>
.run(function($rootScope, $timeout) {
$timeout(function() {
$rootScope.imgSrc = 'https://octodex.github.com/images/daftpunktocat-guy.gif';
}, 2000);
})

ng-class

用作用域中的对象动态改变类样式,例如:


<style>
.red {background-color: red;}
.blue {background-color: blue;}
</style>
<div ng-controller="CurTimeController">
<button ng-click="getCurrentSecond()" >Get Time!</button>
<p ng-class="{red: x%2==0,blue: x%2!=0}" >Number is: {{ x }}</p>
</div>
.controller('CurTimeController', function($scope) {
$scope.getCurrentSecond = function() {
$scope.x = new Date().getSeconds();
};
})

阅读全文

与angularjs表单控件相关的资料

热点内容
cnc圆弧怎么样编程 浏览:199
java二叉堆 浏览:850
少儿编程后会怎么样 浏览:783
ps去掉扫描文件无效部分 浏览:191
快速创建文件夹路径路径 浏览:849
京东app虚拟试衣 浏览:136
三星电视智能升级卡 浏览:327
word文件字号 浏览:460
word文档去除下划线 浏览:576
贝多芬交响曲版本 浏览:532
下载的视频文件损坏了 浏览:119
怎么把jpg转成cad格式的文件大小 浏览:674
如何编程真人快打 浏览:57
double运行数据最长多少 浏览:367
tr90如何看数据 浏览:418
word里面插了一个文件怎么打开 浏览:40
苹果7限时秒杀1999元 浏览:748
如何提升app推送触达率 浏览:584
vba用kill删除文件路径错误 浏览:648
linux查看10个文件总大小 浏览:423

友情链接