Javascript 在什么情况下需要同时使用编译和;角函数
这是我在Angular中的自定义指令。我是个新手Javascript 在什么情况下需要同时使用编译和;角函数,javascript,angularjs,Javascript,Angularjs,这是我在Angular中的自定义指令。我是个新手 app.directive('customer',function() { var directive = {}; directive.restrict = 'E'; directive.template = "Customer name : <b> {{customer.custName}} </b> , Customer Email : <i> {{customer.custEmail}} </i
app.directive('customer',function()
{
var directive = {};
directive.restrict = 'E';
directive.template = "Customer name : <b> {{customer.custName}} </b> , Customer Email : <i> {{customer.custEmail}} </i>";
directive.scope = {
customer: "=name"
}
directive.compile = function(element, attributes)
{
element.css("border", "1px solid #f00");
var linkFunction = function($scope,element,attributes)
{
element.html("Customer name : <b>"+ $scope.customer.custName +"</b> , Customer Email : <i>"+ $scope.customer.custEmail+" </i>");
element.css("background-color", "#ff0");
}
return linkFunction;
}
return directive;
既然transclude参数可用于link函数(我相信是1.2版),那么编译函数就没有什么用处了 虽然它可以让您在处理link函数之前完成工作,但在没有多少有价值的工作要做的时候,它却出现了。例如,绑定已被处理 如果您使用transclusion并坚持使用Angular pre 1.2的某个版本,那么范围尚未绑定这一事实可能会很有用,但是由于您可以通过link函数访问transclude函数,现在我仍然看不到它有多大用处 至于各种指令属性的用途,我将看一看 链接函数为我们注册事件侦听器和操作DOM元素提供了一种干净、简单的方法 scope属性允许您配置指令将使用的AngularJS范围对象。它可以采用布尔值true(作用域与父级共享)、false(指令的作用域与父级的作用域隔离)或对象
directive.scope
directive.compile
var linkfunction