14.AngularJSにおけるカスタム命令処理
6894 ワード
{{msg}}
{{name}}
{{age}}
{{msg}}
{{name}}
var app = angular.module('app',[]);
app.controller('wmxController',['$scope',function ($scope) {
$scope.name = ' ';
$scope.age = 110;
$scope.content = " ";
$scope.title = " title";
}]);
/**
* :
* : , , -
* : ,
* directive
*
* ,
*/
app.directive('wmxDir',function () {
/**
* , {}
*/
return {
/**
* E:
* A:
* C:
*/
restrict:'EA',
//
// , 。
// template:'<h1>{{msg}} <p>{{content}}</p> <p>{{myTitle}}</p> <input type="text" ng-model="myTitle"> </h1>',
// , 。
template:'<h1>{{msg}} <p>{{content}}</p> <input type="text" ng-model="myTitle"> </h1>',
//templateUrl template
// template
// templateUrl html
// templateUrl:'template.html',
// false
replace:true,
//ng-transclude
transclude:true,
// ( )
// , , ( $scope)
// $scope
controller:function ($scope) {
$scope.name = " ";
$scope.msg = " ";
// scope:{myTitle:’@’},
// myTitle, myTitle .
$scope.myTitle = ' title'
},
// scope:true, ,
// .
// scope:true,
// scope {}, ,
// ,
// scope:{}
// scope ,{content:’@’},
// ,
scope:{
//
content:'@',
//scope:{myTitle:’@’},
//@ , ,
// ,
// myTitle:'@'
//scope scope:{myTitle:’@’} ,
// scope:{myTitle:’=’},
// ”@” ”=” ”@” ”{{}}”
// <xmg content="{{content}}" my-title="{{title}}"></xmg>,
// ”=”, <xmg content="content" my-title="title"></xmg>
myTitle:'='
}
}
});
var app = angular.module('app',[]);
app.controller('wmxController',['$scope',function ($scope) {
$scope.parentMethod = function () {
alert(' ')
}
}]);
app.directive('wmx',function () {
return {
restrict:'EA',
template:'<div><button ng-click="click()"> </button></div>',
controller:function ($scope) {
$scope.click = function () {
$scope.childMethod();
}
},
replace:true,
//scope:{childmentod:’&’},
// .
scope:{
//
childMethod:'&'
}
}
});
2
var app = angular.module('app',[]);
app.controller('wmxController',['$scope',function ($scope) {
$scope.name = ' controller';
alert($scope.name);
}]);
app.directive('wmxShow',function () {
return {
restrict:'A',
template:"<div> </div>",
controller:function ($scope) {
//controller ,
//dom
// controller , DOM
},
/**
* link dom , controller link
* 。
* , DOM
* @param $scope
* @param ele dom , JQLite
* @param attr
*/
link:function ($scope,ele,attr) {
//
console.log(ele);
console.log(attr);
// , link
alert(" link");
// DOM
if (attr.wmxShow == 'false'){
ele.css({
'display':'none'
});
}
}
}
});