2016-03-25 143 views
0

我是一位非常優秀的計算機科學專業學生,在C++方面擁有豐富的經驗,但我剛剛開始使用Javascript。實際的角度js控制器對象包含什麼?

我一直在試圖瞭解Angular Js是如何工作的,而且我有點卡在控制器上。我瞭解如何使用它們的基本知識,但我無法破譯它們的構造方式和實際內容的語法。

w3教程指出「控制器是一個JavaScript對象,由標準JavaScript對象構造函數創建。」

和創建一個控制器的語法是:

var app = angular.module('myApp', []); 
app.controller('myCtrl', function($scope) { 
}); 

哪一部分該代碼是對象的構造? 我可能是完全錯誤的,但對於JavaScript中沒有經驗的人來說,它看起來應用程序對象的「控制器」函數是用'myCtrl'和'function($ scope){}作爲參數調用的。

任何人都可以向我解釋這段代碼的第二行是在做什麼以及爲什麼這些參數傳遞給它?

另外在哪裏/什麼是實際的控制器對象?如果我想物理記錄控制器對象,我將如何引用它?

感謝您的幫助!

回答

0

我覺得你誤解了這個概念。在AngularJs控制器是函數,但是當你在那個時候使用ng-controller綁定那個控制器到DOM元素的時候,你將該控制器的對象綁定到了你的html DOM元素。

Anf for second line:app.controller('myCtrl',function($ scope){ });通過編寫這一行,您正在向您的模塊註冊名爲「myCtrl」的控制器。通過這種方式,您告訴AngularJs這是我的控制器。

有很多方法可以在網上找到註冊你的控制器。

1)

app.controller('myCtrl', function($scope) { 

     $scope.xyz="This is myCtrl" 

    }); 

2)

function myCtrl($scope){ 

     $scope.xyz="This is myCtrl" 
    }; 

    app.controller("myCtrl",myCtrl); 

另外,還要確保你給取的名字在第一個參數app.controller( 「」, 「」)。通過這個名字你控制器已註冊到您的模塊中。

+0

感謝您的幫助,您可以使用$範圍聲明變量!對於註冊控制器的第一種方式,雖然對象的實際名稱是什麼?就像我想用console.log記錄控制器對象一樣,我會輸入什麼內容? – user1888863

+0

我認爲你需要在javascript中閱讀面向對象編程(oops)的概念。那麼你可以創建控制器的對象並記錄對象。您還可以使用可用的不同工具,如「ng-inspector」或「batarang」進行日誌記錄。這些都是登錄angularjs的好工具。 –

0

Angularjs Controller處理您的邏輯,如處理用戶輸入,輸出和其他東西,如API調用,其他計算等。

控制器有兩個參數1)控制器的名字和2)功能是處理

var app = angular.module('myApp', []); 
app.controller('myCtrl', function($scope) { 
}); 

所以現在在上面的代碼

var app = angular.module('myApp', []);

使用此行定義你的應用程序模塊

app.controller('myCtrl', function($scope) { //Your login for controller is here });

上面的代碼表示定義控制器myCtrlapp

你可以聲明變量或使用$scope這是唯一隻myCtrl範圍訪問功能。你不能在控制器外部使用它。

如下 app.controller('myCtrl', function($scope) { $scope.myVar = "Hello World"; });