对象在Angular指令中初始化不同于控制器?

时间:2013-06-14 16:23:55

标签: object angularjs controller initialization directive

我遇到了对象初始化的问题,不同的是代码是在控制器中还是在指令链接函数中。在下面的示例代码中,“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)
  });
}

1 个答案:

答案 0 :(得分:0)

我认为你在声明中使用“this”是个问题。阅读How does the "this" keyword work?以确保您了解其工作原理。

对我来说,看起来“this”可能会被设置为指令中的“myDir”变量,以及控制器中的window对象。