对于程序员来说,除了需要了解不同的编程语言的特点以外,同时对于编程语言的使用都有自己的风格。今天,电脑培训就一起来了解一下,angular编程的一些基础知识都有哪些。
一、指令的简介
指令其实就是angularjs对html的一个扩展,实现自定义html元素
angularjs其自身封装了一些常用的系统指令,我们也可以根据需要自定义指令
二、自定义指令简介
自定义指令的基本格式
app.directive("指令名称",function(){
restrict:'指令匹配格式',
replace:true,是否自定义元素替代指令申明
template:'百度一下'
})
自定义指令关键词说明:
指令名称说明:名字一般采用驼峰命名,及字母小写其余单词大写
在调用时,要将大写字母转换为小写并加上-
举例:myDirectiveTest调用为:my-directive-test
restrict有四种枚举值:
E:指令按照元素来匹配
使用:
C:按照class来匹配
使用:
A:按照属性来匹配
使用:
M:按照注释来匹配
这是 Angular.JS 几乎电子邮件检查元素代码是好的但这有一个问题。 当我填写电子邮件检查元素时,它将重置 !我写这篇文章到电子邮件检查元素的示例。
"test@test.com"
但这重置 !当我写 '.' <-点。
"test@test"<-好的
"test@test"。 <-重置输入。当我写 '.' <-
发生问题的原因吗?
Javascript
<script>
angular.module('test', [])
.controller('MyController', ['$scope', '$window', function($scope, $window) {
$scope.sendMessage=function(toSb){
alert(toSb)
}
}])
.directive('emailInput', function($compile) {
return {
restrict: 'C',
template: '<input type="email" ng-model="emailtext" required>{{emailtext}}',
link: function(scope, elem, attrs){
scope.name="emailAddress"
var input = elem.find("input")[0]
input.name = "emailAddress"
$compile(input)(scope)
}
}
})
</script>
HTML
<form name="myForm">
<div class="email-input"></div>
inputIsValid={{myForm.emailAddress.$valid}}<br>
<span class="error" ng-show="myForm.emailAddress.$error.required">Required!</span>
<span class="error" ng-show="myForm.emailAddress.$error.email">Not valid email!</span>
</form>
解决方法 1:
你需要使你的指令与替换选项和名称属性得到指令元素 (基本上做不重新编译一次输入)。它是展示古怪行为时,你有你的指令编译,它将重置 (未定义) 解析后的 modelValue 但以某种方式在这种情况下,它将 viewvalue 以及重置角验证。你可以看到它并不会发生是否您使用的输入的类型直接,看来像是编译模板导致了此问题。
.directive('emailInput', function ($compile) {
return {
restrict: 'C',
replace:true,
template: '<input type="email" ng-model="emailtext" required>',
link: function (scope, elem, attrs) {
}
}
和
<div class="email-input" name="emailAddress"></div>
Plnkr
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)