您的位置:首页 > Web前端 > AngularJS

AngularJS 常用指令

2017-03-22 10:14 239 查看
1、directive指令改变div样式

<div id="ParentNode" class="button-bar">
<div class="bgstyle" change-element>First</div>
<div class="bgstyle" change-element>Second</div>
<div class="bgstyle" change-element>Third</div>
</div>

appDirectives.directive("changeElement", function () {
return {
link: function (scope, elements, attrs, controller) {
elements[0].onclick = function () {
console.log(123);
elements[0].style.height = "100px";
elements[0].style.border = "solid 5px #33cd5f";
elements[0].style.borderColor = "#886aea";
elements[0].style.backgroundColor = "#ef473a";
elements.css('background-color','#33cd5f');
elements.removeClass("bgstyle");
                elements.addClass("active");
                elements.toggleClass("active");//添加或删除一个样式类
};
}
};
});


2、directive指令传递、获取参数

<div class="button-bar">
<div class="bgstyle" get-params="100">获取100</div>
<div class="bgstyle" get-params="200">获取200</div>
<div class="bgstyle" get-params="300">获取300</div>
</div>

appDirectives.directive("getParams", function () {
return {
link: function (scope, elements, attrs, controller) {
elements[0].onclick = function () {
console.log(attrs.getParams);
};
}
};
});


3、directive指令Angular + jQuery混合使用

<div class="airlines-wrap row">
<div class="col-lg-2 col-md-3 col-sm-4 col-xs-6" ng-repeat="item in airlineList">
<dl class="dl-horizontal" add-active="{{item.id}}">
<dt>
<img src="images/mahang.jpg">
</dt>
<dd>
<span class="airlines-name">{{item.name_CN}}</span>
<span class="text-en">{{item.name_CN}}</span>
</dd>
</dl>
</div>
</div>

appDirectives.directive("addActive", function () {
return {
link: function (scope, elements, attrs, controller) {
elements[0].onclick = function () {
console.log(attrs.addActive);
$(".airlines-wrap").find(".dl-horizontal").removeClass('active');
elements.addClass("active");
};
}
};
});
4、directive指令传递、获取json参数、html控件赋值
<div class="button-bar">
<div class="bgstyle" get-json='{"id":1,"name":"qwer"}'>
获取json字符串
<p id="house"></p>
</div>
<div class="bgstyle" get-json='{"id":2,"name":"asdf"}'>
获取json字符串
<p id="car"></p>
</div>
<div class="bgstyle" get-json='{"id":3,"name":"zxcv"}'>
获取json字符串
<p id="beauty"></p>
</div>
</div>

appDirectives.directive("getJson", function () {
return {
link: function (scope, elements, attrs, controller) {
elements[0].onclick = function () {
console.log(attrs.getJson);
var item = angular.fromJson(attrs.getJson);
if (item.id == 1) {
elements[0].style.height = "50px";
$('#house').html("* " + item.name);
}
else if (item.id == 2) {
elements[0].style.height = "50px";
console.log(item.id);
$('#car').html("* " + item.name);
}
else if (item.id == 3) {
elements[0].style.height = "50px";
$('#beauty').html("* " + item.name);
}
};
}
};
});

5、directive指令template模板

<show-property></show-property>

appDirectives.directive('showProperty', function () {
return {
restrict: 'E',
template: '<h1">hello world</h1>',
replace: true
};
});

*、css样式

<style>
    .bgstyle{background-color:#8f8f8f;width:100%;height:30px;margin:2px 0 2px 0;text-align:center}
    .bgstyle-check{background-color:#ff3b30;width:100%;height:30px;margin:2px 0 2px 0;text-align:center}
    .active{background-color:#886aea}
</style>

*、angular String类型和JSON相互转换

angular.fromJson()方法:将 Json字符串 转换成 对象,或对象数组;

angular.toJson()方法:将 Json对象 转换成string类型;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息