将唯一 ID 分配给 link 中的指令属性
Assign unique id to directive attribute from link
在我的 AngularJS 应用程序中,我有一个购物车指令,我需要将指令 link 方法中的唯一 ID 分配给 id
属性,同时设置值来自公开控制器的其他属性。
指令
.directive('ngcartAddtocart', ['ngCart', function(ngCart){
return {
restrict : 'E',
controller : 'CartController',
scope: {
id: '=',
name:'@',
price:'@',
data:'='
},
transclude: true,
link:function(scope, element, attrs){
var ID = (function () {
return '_' + Math.random().toString(36).substr(2, 9);
}())
attrs.id = ID;
}
}])
查看
<ngcart-addtocart
id="" <!--THIS I WANT TO DYNAMICALLY ADD ID FROM DIRECTIVE -->
name="item.name" <!-- PROVIDED BY CONTROLLER -->
price="item.price" <!-- PROVIDED BY CONTROLLER -->
data="object.data" <!-- PROVIDED BY CONTROLLER -->
></ngcart-addtocart>
问题
从指令 link 方法向指令动态添加 ID 的最佳方法是什么?
使用element.attr("id",ID);
link:function(scope, element, attrs){
var ID = (function () {
return '_' + Math.random().toString(36).substr(2, 9);
}())
̶a̶t̶t̶r̶s̶.̶i̶d̶ ̶=̶ ̶I̶D̶;̶
element.attr("id",ID);
}
有关详细信息,请参阅
在我的 AngularJS 应用程序中,我有一个购物车指令,我需要将指令 link 方法中的唯一 ID 分配给 id
属性,同时设置值来自公开控制器的其他属性。
指令
.directive('ngcartAddtocart', ['ngCart', function(ngCart){
return {
restrict : 'E',
controller : 'CartController',
scope: {
id: '=',
name:'@',
price:'@',
data:'='
},
transclude: true,
link:function(scope, element, attrs){
var ID = (function () {
return '_' + Math.random().toString(36).substr(2, 9);
}())
attrs.id = ID;
}
}])
查看
<ngcart-addtocart
id="" <!--THIS I WANT TO DYNAMICALLY ADD ID FROM DIRECTIVE -->
name="item.name" <!-- PROVIDED BY CONTROLLER -->
price="item.price" <!-- PROVIDED BY CONTROLLER -->
data="object.data" <!-- PROVIDED BY CONTROLLER -->
></ngcart-addtocart>
问题
从指令 link 方法向指令动态添加 ID 的最佳方法是什么?
使用element.attr("id",ID);
link:function(scope, element, attrs){
var ID = (function () {
return '_' + Math.random().toString(36).substr(2, 9);
}())
̶a̶t̶t̶r̶s̶.̶i̶d̶ ̶=̶ ̶I̶D̶;̶
element.attr("id",ID);
}
有关详细信息,请参阅