我遇到了对象初始化的问题,不同的是代码是在控制器中还是在指令链接函数中。在下面的示例代码中,“this”参数在
中传递prop: new Object(this)
当代码在控制器中运行时,是一个合法的Object构造函数,但在指令中运行时未定义。为什么执行相同代码的区别?
myapp.directive("myDir",function()
{
var myDir = {
link: function(scope,element,attrs)
{
var obj;
obj = new Object({
prop: new Object(this)
});
}
}
return myDir;
}
myapp.controller("MyCtrl",function($scope)
{
var obj;
obj = new Object({
prop: new Object(this)
});
}
答案 0 :(得分:0)
我认为你在声明中使用“this”是个问题。阅读How does the "this" keyword work?以确保您了解其工作原理。
对我来说,看起来“this”可能会被设置为指令中的“myDir”变量,以及控制器中的window对象。