angular语法(angularjs中ng-class和class到底有什么区别,怎么用ng-class)
本文目录
- angularjs中ng-class和class到底有什么区别,怎么用ng-class
- angularJs 能再ng-if里面判断当前元素有没有指定的某个class吗
- angularjs中undefined怎么判断
- angularjs中错误总结
- angular怎么获取表格每一列的数据
angularjs中ng-class和class到底有什么区别,怎么用ng-class
angularjs中ng-class和class到底有什么区别,怎么用ng-class呢 ng-class是根据 key: value来设置class你看angularjs进阶的课程.看对你有帮助不. function ctr($scope){ $scope.test
angularJs 能再ng-if里面判断当前元素有没有指定的某个class吗
jquery 判断元素是否具有某个class的方法是使用hasClass方法。 定义和用法 hasClass() 方法检查被选元素是否包含指定的 class。 语法 $(selector).hasClass(class) 例子: if($("#b").hasClass("a")){ alert("包含class a"); }
angularjs中undefined怎么判断
AngularJS表达式类似Javascript的代码片段,通常在数据绑定中用到,写在双大括号中,如:{{表达式}}。表达式是用$parse方法来处理的。下面是一些合法的AngularJS表达式1+23*10 | currencyuser.name你可能会认为AngularJS视图中的表达式就是Javascript表达式,这种认识不完全对,因为AngularJS不会用Javascript的eval()函数去执行表达式。 不过除了以下几个需要区别的地方以外,你可以把AngularJS表达式看成是Javascript表达式: 属性表达式:属性表达式对应于当前的作用域,不像Javascript对应的是全局的window对象。允许未定义值:执行表达式时,AngularJS能够允许undefined或者null,不像Javascript会抛出一个异常。没有控制结构: 你不能在AngularJS表达式中使用“条件判断”、“循环”、“抛出异常”等控制结构。过滤器(类似unix中的管道操作符): 你可以通过过滤器链来传递表达式的结果。例如将日期对象转变成指定的阅读友好的格式。如果你想要在表达式中使用标准的Javascript,那么你应该把它写成一个控制器的方法,然后在表达式中调用这个方法。如果你想在Javascript中执行AngularJS表达式,你可以使用$eval()方法。举个例子:《!doctype html》《html ng-app》 《head》***隐藏网址*** 《script》 function Cntl2($scope) { var exprs = $scope.exprs = ; $scope.expr= ’3*10|currency’; $scope.addExp= function(expr) { //在控制器里面定义了一个addExp方法,在这个方法中,使用的是标准的js代码 exprs.push(expr); }; $scope.removeExp= function(index) { exprs.splice(index,1); }; } 《/script》 《/head》 《body》 《div ng-controller="Cntl2" class="expressions"》 Expression: 《input type=’text’ ng-model="expr" size="80"/》 《button ng-click="addExp(expr)"》Evaluate《/button》 《ul》 《li ng-repeat="expr in exprs"》 《tt》{{expr}}《/tt》 =》 《span ng-bind="$parent.$eval(expr)"》《/span》 //这里的expr是在js中,如果想运行此angular表达式,就调用$eval。 《/li》 《/ul》 《/div》 《/body》《/html》属性表达式属性表达式计算是发生在作用域中的。Javascript默认是以window为作用域的。AngularJS要使用window作用域的话得用$window来指向全局window对象。 比如说,你使用window中定义的alert()方法,在AngularJS表达式中必须写成$window.alert()才行。举个例子:《!doctype html》《html ng-app》 《head》 《script src="www.hbbz08.com //code.angularjs.org/angular-1.0.2.min.js"》《/script》 《script》 function Cntl1($window, $scope){ $scope.name = ’World’; $scope.greet = function() { ($window.mockWindow || $window).alert(’Hello ’ + $scope.name); } } 《/script》 《/head》 《body》 《div class="example2" ng-controller="Cntl1"》 Name: 《input ng-model="name" type="text"/》 《button ng-click="greet()"》Greet《/button》 《/div》 《/body》《/html》允许未定义值表达式在执行时是可以允许undifined和null的。 在Javascript中,计算a.b.c会抛出一个异常,如果这不是一个对象的话。但是如果大多数时候表达式是用来作数据绑定的,像下面这种形式:{{a.b.c}}那么表达式返回一个空值会比触发异常更有意义。因为通常我们是在等待服务器的响应,并且变量马上就会被定义和赋值。如果表达式不能容忍未定义的值,那么我们绑定的代码就不得不写成形如:{{((a||{}).b||{}).c}}angular在执行未定义的函数a.b.c()是,也会返回undefined,不会触发异常。没有流程控制结构你不能在表达式中使用控制结构。这样设计的原因在于AngularJS的设计理念之一就是逻辑代码都应该在控制器里。如果你需要使用条件、循环、或者处理异常,你就应该写在控制器的方法里。过滤器当你将数据呈献给用户时,你很可能需要将数据转换为阅读友好的格式。比方说,你可能需要在显示之前将一个日期对象转换为用户本地的时间格式。你可以用链式的过滤器来传递表达式,像下面这样:name | uppercase这个表达式会将name的值传递给uppercase这个过滤器。链式过滤器使用的是下面这样的语法:value | filter1 | filter2你也可以通过冒号来给过滤器传递参数,比如,将123显示成带有两位小数的形式:123 | number:2$符号你可能会好奇,这个$的前缀有什么用?其实这只是一个标记AngularJS专有属性的符号,用来表示区别于开发者自定义属性的符号。AngularJS的设计是在已有的对象上添加行为。使用$做前缀的话,就能使得开发者的代码和AngularJS的代码和谐共处了。
angularjs中错误总结
waiting 时间太长---- 查看waiting 的意思,以及TTFB,
TTFB ,是最初的网络请求被发起到从服务器接收到第一个字节这段时间,它包含了TCP连接时间,发送HTTP请求时间和获得响应消息第一个字节的时间。
或者《img ng-src="{{shopGood.image_url || ’./img/notShow.jpg’}} " alt="餐厅图片" onerror="javascript:this.src=’./img/notShow.jpg’”/》
24 表单当中type=“text”,数字相加时 只能放在js当 中,不能放在ng-bind中,parseFloat(),不支持函数, 如果利用+将字符串转换为数字,则不管用。。。。《span》{{(+ shopGood.ori_price) + (+shopGood.add_price)}}《/span》
依赖注入时的语法错误,名称不对
26.angularjs中的表单type=“number”会自动把字符串转换为数字? 对
27.finally(function (){ dialog.hidePreloader(); });
缺少注入依赖
Failed to load template: template/modal/backdrop.html
angular-bootstrap中忘记导入ui-bootstrap-tpls.js
路由错误导致
30.gulpfile中无watch监听会有很严重的缓存问题(不能及时更新)
Uncaught Error: Failed to instantiate module app due to: Error: Failed to instantiate module ui-router due to: Error: Module ’ui-router’ is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.
错误:/ angular.module(’app’, ).config( require(’./app/config.js’) ) /
Uncaught Error: Failed to instantiate module app due to: TypeError: Cannot read property ’otherwise’ of undefined
module.exports = ;
34.一直报错找不到相对页面 404 gulpfile 里缺少对html视图的自动化,将html页面的模板都压缩在tempaltes.js中,然后相对应的config中的路由根据此去查找 缺少了 require(’../views/templates’);
angular怎么获取表格每一列的数据
我们会关注两种提交表单的方式: 旧方法: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)) $errors = ’Name is required.’; if (empty($_POST)) $errors = ’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 = false; $data = $errors; } else { // if there are no errors, return a message $data = true; $data = ’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’).val(), ’superheroAlias’ : $(’input’).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. 设置module 3. 这是controller 4. 将module和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 module/app var formApp = angular.module(’formApp’, ); ***隐藏网址******隐藏网址*** } 《/script》《/head》 《!-- apply the module and controller to our body so angular is applied to that --》《body ng-app="formApp" ng-controller="formController"》 ...现在,我们有了Angular应用的基础。我们已经加载了Angular,创建了组件模块和控制器,并且将其应用于我们的网站。接下来,我将展示双向绑定是如何工作的。双向数据绑定这是Angular的核心思想之一,也是功能最强大的内容之一。在Angular文档中,我们看到:“在Angular网页应用中的数据绑定,是模型和视图层之间的数据自动同步。”这意味着,我们需要在表单中抓取数据,使用$(’input’).val()并不是必需的。我们在Angular中将数据和变量绑定在一起,无论是javascript也好,view也罢,只要有改变,两者皆变。***隐藏网址***$scope:控制器和视图层之间的粘合剂。基本上,变量使用$scope从我们的控制器和视图层之间传递和往来。具体详细的定义,请参见文档。***隐藏网址***使用数据绑定获取变量好了,闲话少说。我们将这些讨论应用到表单中去。方法比上面讨论的要简单。我们想Angular控制器和视图中分别添加一行。 《!-- index.html --》 ... 《!-- PROCESS FORM WITH AJAX (NEW) --》 《script》 // define angular module/app var formApp = angular.module(’formApp’, ); ***隐藏网址******隐藏网址*** // 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 module/app var formApp = angular.module(’formApp’, ); ***隐藏网址******隐藏网址*** // 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()"》 ...***隐藏网址***处理表单的语法看起来跟原始方式很像。好处是我们不需要手动抓取表单数据,或者注入,隐藏,添加类显示错误或成功信息。《!-- index.html --》 ... // process the form$scope.processForm = function() {***隐藏网址*** 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的唯一原因就是,它更简单。
更多文章:
earthquake是什么意思(earthquake是什么意思)
2024年6月23日 21:37
十进制转2进制计算器(得力D991CNPlUS计算器怎么算十进制转二进制步骤)
2024年9月30日 20:05
plc廖常初第三版答案免费看(机电设备电气控制与plc应用答案 [如何利用PLC来判断机电设备的故障])
2024年7月12日 14:01
invalidate cache(gpu为什么要在有些draw的时候对cache做flush和invalidate)
2024年7月2日 15:14
c++ memset函数(C++ 代码编译的时候说没定义memset这个函数,这个该怎么办)
2024年7月20日 05:19
嵌入式论坛推荐(我想学习arm9嵌入式,请各位给推荐几款物美价廉的开发板)
2024年7月10日 09:03
actionlist(安装adobe flash player时出现错误提示找不到Actionlist怎么办)
2024年5月8日 08:02
eof在vfp是什么意思(vfp中的EOF和BOF函数总是.F)
2024年6月29日 16:01
php与js的区别(html标签,php标签,js标签这些是不是一类东西,是什么啊它们有什么区别呢)
2024年8月28日 15:25
mysql dba是什么(mysql数据库高手进来,关于分库和分表的问题)
2024年7月16日 10:16
replacement ring戒指(Sam tsui的just a dream 歌词中文翻译)
2024年7月12日 21:51