コードがコントローラーとディレクティブ リンク関数にあるかどうかで、オブジェクトの初期化が異なるという問題に遭遇しました。以下のコード例では、「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)
});
}