如何在每次调用指令时创建一个唯一的作用域(AngularJS)
How to create a unique scope each time a directive is called (AngularJS)
我正在创建一个带有'widgets'的页面。我已经创建了指令/控制器/工厂/模板文件,当每页只使用1个时,一切都很好,但是当我使用多个时,会出现问题。
我的指令:
app.directive('widget', ['widgets', function(widgets){
return {
restrict: 'E',
link: function(scope, element, attrs) {
// Send attributes to template
scope.widget = {
id : attrs.id,
type : attrs.type,
view : attrs.view
}
},
templateUrl: function(elem, attrs) {
return false || 'tpl/widgets/' + attrs.type + 's.html';
}
}
}])
My templateUrl file:
<div ng-controller="Widgets">
{{widget.id}}
</div>
如果我将以下代码添加到主HTML文件
<widget id="widget_1" type="table" view="basic"></widget>
输出为:
widget_1
但是当我添加2个小部件时,例如:
<widget id="widget_1" type="table" view="basic" views="basic"></widget>
<widget id="widget_2" type="table" view="basic" views="basic"></widget>
输出为:
widget_2
widget_2
由于每次创建新的"小部件"时只有一个scope.widget
被覆盖(我假设…)。
是否有一种方法来创建一个唯一的范围/var每次创建一个新的小部件?
使用isolate scope
app.directive('widget', ['widgets', function(widgets){
return {
restrict: 'E',
scope:{},
link: function(scope, element, attrs) {
// Send attributes to template
scope.widget = {
id : attrs.id,
type : attrs.type,
view : attrs.view
}
},
templateUrl: function(elem, attrs) {
return false || 'tpl/widgets/' + attrs.type + 's.html';
}
}
}])
为了更好地理解directive
中scope
的概念:
请参考此链接:"http://www.undefinednull.com/2014/02/11/mastering-the-scope-of-a-directive-in-angularjs/"
相关文章:
- 多个ID和一个唯一的名称
- 如何生成一个唯一的链接,该链接将加载一个会话,其中包含客户端可用的某些文档
- 警告:数组或迭代器中的每个子节点都应该有一个唯一的“键”道具
- 为变量指定一个唯一的名称 JavaScript/jQuery
- 未捕获的异常:每个数据元素都必须实现一个唯一的“id”属性slick.dataview.js
- 如何将用户名附加到我的 ./profile/
URL 中,以便每个用户都有一个唯一的页面.-意思 - - 每次 while 循环运行时调用 javascript,以从数据库中给出一个唯一的时间
- 将一个元素与一个唯一的数字相关联
- 如何分配或附加一个唯一的ID在javascript与行整数从html
- 给动态生成的文本框一个唯一的名字
- 是否有一种更简单的方法来使用lodash从多个对象集合中构造一个唯一值的数组?
- sequelize + sequelize-hierarchy:如何在每个级别强制一个唯一的组织名称
- 创建一个唯一的JavaScript对象
- 如何使用node js与mongoose创建一个唯一的json元素列表
- 如何在每次调用指令时创建一个唯一的作用域(AngularJS)
- 是否可以将一个唯一的CSS类附加到多个<李>元素,或者使用Jquery对它们重新排序
- D3.js:在一个有序的尺度中获取每一个唯一的值
- 每次while循环运行时调用javascript,给出一个唯一的波形
- 如何生成一个唯一的id,每次我按下一个按钮在JavaScript
- 多个主机名对每个URL都需要一个唯一的iframe