样式部分
*{margin:0;padding:0;list-style:none;}
ul{display:flex;}
ul li{flex-grow:1;text-align:center;line-height:50px;box-sizing:border-box;border:1px solid deepskyblue;}
ul li.bgColor{background:palegoldenrod;color:#fff;}
p{height:300px;border:1px solid deepskyblue;box-sizing:border-box;}
html部分
<body ng-controller="myCtrl">
<my-hello my-data="arr" my-index="index" my-fn="fn(num)"></my-hello>
</body>
script部分
var app =angular.module("myApp",[]);
app.directive("myHello",function(){
return {
restrict :"ECMA",
//指令在模板中的使用方式(匹配模式)
replace:true,
scope:{
// myId:"@",
//只能读到父作用域里的值单项绑定
//把当前属性作为字符串传递,还可绑定来自外层scope的值,在属性值中插入{{}}即可
myData:"=",
//作用域中的属性与父作用域scope中的属性进行双向数据绑定,任何一方的修改都会影响到对方
myIndex:"=",
myFn:"&"
//传递一个来自父scope的函数,稍后调用
//作用域把父作用域的属性进行双向数据绑定,从而以函数的方式读写父作用域的属性
},
templateUrl:"./xxk.html",
link:function(scope,ele,attr){
console.log(scope);//数据
console.log(ele);//元素
console.log(attr);//属性
}
}
});
app.controller("myCtrl",["$scope",function($scope){
$scope.arr = [
{til:"首页",content:"这是首页的内容"},
{til:"第一页",content:"这是第一页的内容"},
{til:"第二页",content:"这是第二页的内容"},
{til:"第三页",content:"这是第三页的内容"}
];
$scope.index =0;
$scope.fn=function(index){
$scope.index =index;
};
}])