Javascript 模板函数是否生成新的子作用域?
我试图用我自己编写的自定义指令替换Javascript 模板函数是否生成新的子作用域?,javascript,angularjs,angularjs-scope,angularjs-compile,Javascript,Angularjs,Angularjs Scope,Angularjs Compile,我试图用我自己编写的自定义指令替换ng repeat指令。以下是定义对象链接函数: //directive definition object... //... ///link: function (scope.......) function buildList(entries){ var i, timeline = [], tplCopy,
ng repeat
指令。以下是定义对象链接函数:
//directive definition object...
//...
///link: function (scope.......)
function buildList(entries){
var i,
timeline = [],
tplCopy,
tplFunct;
for (i = 0; i < entries.length; i++) {
tplFunct = $compile(entries[i]);
timeline.push(tplFunct(scope.$new()));
}
DOMelement.append(timeline);
}
//指令定义对象。。。
//...
///链接:功能(范围……)
函数构建列表(条目){
var i,
时间线=[],
tplCopy,
tplFunct;
对于(i=0;i
其中,范围
是我的指令工作的地方,条目
是节点元素的列表
除了一件事之外,这一切都很好:通过tplFunct
绑定到单个条目的范围是我专门创建的新项目的子项目
所以我的问题是:tplFunct(scope.$new())
是否将给定范围的子级绑定到范围本身的内部
编辑。
新作用域是否可能由条目中的ng controller=“foo”
指令生成?即使绑定的控制器内部没有$scope
服务
下面包括两种不同的声明样式:
可以使用以下方法将方法和属性直接绑定到控制器上:
ng controller=“将controller1设置为设置”
将$scope注入控制器:ng controller=“SettingsController2”
当您显式调用scope.$new()
时,将创建一个新的子作用域,并且您的tplFunct
将绑定到该作用域。如果希望将模板函数绑定到作用域本身,则应执行tplFunct(作用域)
。这将导致所有元素绑定到单个范围对象。这就是你想要完成的吗?@Arkantos我想说的是,“scope.$new()”范围的子对象是绑定的,这就是问题所在。所以我们有父范围->子范围->孙子范围